Newer
Older
pixi.js / bundles / pixi.js-legacy / pixi.js-legacy.d.ts
@Ivan Popelyshev Ivan Popelyshev on 16 Mar 2018 6 KB Adds TypeScript typings to bundles (#4760)
///<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;

        }
    }
}