///<reference types="pixi.js"/>
//tslint:disable-next-line:no-single-declare-module
declare module "pixi.js-legacy" {
export = PIXI;
}
//////////////////////////////////////////////////////////////////////////////
/////////////////////////////CANVAS///////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
declare namespace PIXI {
export function autoDetectRenderer(width: number, height: number, options?: PIXI.RendererOptions, forceCanvas?: boolean): PIXI.Renderer | PIXI.CanvasRenderer;
export function autoDetectRenderer(options?: PIXI.RendererOptions): PIXI.Renderer | PIXI.CanvasRenderer;
export namespace settings {
export let MESH_CANVAS_PADDING: number;
}
export interface DisplayObject {
renderCanvas(renderer: CanvasRenderer): void;
_renderCachedCanvas(renderer: CanvasRenderer): void;
_initCachedDisplayObjectCanvas(renderer: CanvasRenderer): void;
}
export interface Container {
_renderCanvas(renderer: CanvasRenderer): void;
}
export interface Graphics {
generateCanvasTexture(scaleMode?: number, resolution?: number): Texture;
}
export class CanvasSpriteRenderer extends ObjectRenderer {
constructor(renderer: Renderer);
render(sprite: Sprite): void;
destroy(): void;
}
export class CanvasGraphicsRenderer {
constructor(renderer: SystemRenderer);
render(graphics: Graphics): void;
updateGraphicsTint(graphics: Graphics): void;
renderPolygon(points: Point[], close: boolean, context: CanvasRenderingContext2D): void;
destroy(): void;
}
export namespace CanvasTinter {
export function getTintedTexture(sprite: Sprite, color: number): HTMLCanvasElement;
export function tintWithMultiply(texture: Texture, color: number, canvas: HTMLCanvasElement): void;
export function tintWithOverlay(texture: Texture, color: number, canvas: HTMLCanvasElement): void;
export function tintWithPerPixel(texture: Texture, color: number, canvas: HTMLCanvasElement): void;
export function roundColor(color: number): number;
export let cacheStepsPerColorChannel: number;
export let convertTintToImage: boolean;
export let canUseMultiply: boolean;
export let tintMethod: number;
}
export interface Mesh {
canvasPadding: number;
_canvasPadding: number;
}
export class CanvasMeshRenderer {
constructor(renderer: CanvasRenderer);
renderer: CanvasRenderer;
render(mesh: Mesh): void;
protected _renderTriangleMesh(mesh: Mesh): void;
protected _renderTriangles(mesh: Mesh): void;
protected _renderDrawTriangle(mesh: Mesh, index0: number, index1: number, index2: number): void;
protected renderMeshFlat(mesh: Mesh): void;
destroy(): void;
}
export interface NineSlicePlane {
drawSegment(context: CanvasRenderingContext2D | WebGLRenderingContext, textureSource: any, w: number, h: number, x1: number, y1: number, x2: number, y2: number): void;
}
interface DefaultCanvasRendererPlugins {
extract: extract.CanvasExtract;
prepare: prepare.CanvasPrepare;
}
export interface CanvasRendererPlugins extends DefaultCanvasRendererPlugins, RendererPlugins {
}
export class CanvasRenderer extends SystemRenderer {
// plugintarget mixin start
static __plugins: { [pluginName: string]: { new(renderer: CanvasRenderer): any; } };
static registerPlugin(pluginName: string, ctor: { new(renderer: CanvasRenderer): any; }): void;
plugins: CanvasRendererPlugins;
initPlugins(): void;
destroyPlugins(): void;
// plugintarget mixin end
constructor(options?: RendererOptions);
constructor(screenWidth?: number, screenHeight?: number, options?: RendererOptions);
protected _activeBlendMode: number;
rootContext: CanvasRenderingContext2D;
rootResolution?: number;
refresh: boolean;
maskManager: CanvasMaskManager;
smoothProperty: string;
extract: extract.CanvasExtract;
context: CanvasRenderingContext2D | null;
render(displayObject: PIXI.DisplayObject, renderTexture?: PIXI.RenderTexture, clear?: boolean, transform?: PIXI.Transform, skipUpdateTransform?: boolean): void
setBlendMode(blendMode: number): void;
destroy(removeView?: boolean): void;
clear(clearColor?: string): void;
invalidateBlendMode(): void;
on(event: "prerender" | "postrender", fn: () => void, context?: any): this;
once(event: "prerender" | "postrender", fn: () => void, context?: any): this;
removeListener(event: "prerender" | "postrender", fn?: () => void, context?: any): this;
removeAllListeners(event?: "prerender" | "postrender"): this;
off(event: "prerender" | "postrender", fn?: () => void, context?: any): this;
addListener(event: "prerender" | "postrender", fn: () => void, context?: any): this;
}
export class CanvasMaskManager {
constructor(renderer: CanvasRenderer);
pushMask(maskData: any): void;
protected renderGraphicsShape(graphics: Graphics): void;
popMask(renderer: Renderer | CanvasRenderer): void;
destroy(): void;
}
export class CanvasRenderTarget {
constructor(width: number, height: number, resolution: number);
canvas: HTMLCanvasElement;
context: CanvasRenderingContext2D;
resolution: number;
width: number;
height: number;
clear(): void;
resize(width: number, height: number): void;
destroy(): void;
}
export namespace prepare {
export class CanvasPrepare extends BasePrepare<CanvasPrepare> {
constructor(renderer: CanvasRenderer);
protected canvas: HTMLCanvasElement;
protected ctx: CanvasRenderingContext2D;
}
}
export namespace extract {
export class CanvasExtract {
protected renderer: CanvasRenderer;
constructor(renderer: CanvasRenderer);
image(target?: DisplayObject | RenderTexture): HTMLImageElement;
base64(target?: DisplayObject | RenderTexture): string;
canvas(target?: DisplayObject | RenderTexture): HTMLCanvasElement;
pixels(renderTexture?: DisplayObject | RenderTexture): Uint8ClampedArray;
destroy(): void;
}
}
}