// Type definitions for PIXI with Phaser Deviations. declare module PIXI { export var game: Phaser.Game; export var WEBGL_RENDERER: number; export var CANVAS_RENDERER: number; export var VERSION: string; export enum blendModes { NORMAL, ADD, MULTIPLY, SCREEN, OVERLAY, DARKEN, LIGHTEN, COLOR_DODGE, COLOR_BURN, HARD_LIGHT, SOFT_LIGHT, DIFFERENCE, EXCLUSION, HUE, SATURATION, COLOR, LUMINOSITY } export enum scaleModes { DEFAULT, LINEAR, NEAREST } export var defaultRenderOptions: PixiRendererOptions; export var INTERACTION_REQUENCY: number; export var AUTO_PREVENT_DEFAULT: boolean; export var PI_2: number; export var RAD_TO_DEG: number; export var DEG_TO_RAD: number; export var RETINA_PREFIX: string; export var identityMatrix: Matrix; export var glContexts: WebGLRenderingContext[]; export var instances: any[]; export var BaseTextureCache: { [key: string]: BaseTexture }; export var TextureCache: { [key: string]: Texture }; export var TextureSilentFail: boolean; export var BitmapText: { fonts: {} }; export function isPowerOfTwo(width: number, height: number): boolean; export function rgb2hex(rgb: number[]): string; export function hex2rgb(hex: string): number[]; export function autoDetectRenderer(width?: number, height?: number, options?: PixiRendererOptions): PixiRenderer; export function autoDetectRecommendedRenderer(width?: number, height?: number, options?: PixiRendererOptions): PixiRenderer; export function canUseNewCanvasBlendModes(): boolean; export function getNextPowerOfTwo(number: number): number; export function AjaxRequest(): XMLHttpRequest; export function CompileFragmentShader(gl: WebGLRenderingContext, shaderSrc: string[]): any; export function CompileProgram(gl: WebGLRenderingContext, vertexSrc: string[], fragmentSrc: string[]): any; export interface IEventCallback { (e?: IEvent): void } export interface IEvent { type: string; content: any; } export interface HitArea { contains(x: number, y: number): boolean; } export interface IInteractionDataCallback { (interactionData: InteractionData): void } export interface PixiRenderer { autoResize: boolean; clearBeforeRender: boolean; height: number; resolution: number; transparent: boolean; type: number; view: HTMLCanvasElement; width: number; destroy(): void; render(stage: DisplayObjectContainer): void; resize(width: number, height: number): void; } export interface PixiRendererOptions { autoResize?: boolean; antialias?: boolean; clearBeforeRender?: boolean; preserveDrawingBuffer?: boolean; resolution?: number; transparent?: boolean; view?: HTMLCanvasElement; } export interface BitmapTextStyle { font?: string; align?: string; tint?: string; } export interface TextStyle { align?: string; dropShadow?: boolean; dropShadowColor?: string; dropShadowAngle?: number; dropShadowDistance?: number; fill?: string; font?: string; lineJoin?: string; stroke?: string; strokeThickness?: number; wordWrap?: boolean; wordWrapWidth?: number; } export interface Loader { load(): void; } export interface MaskData { alpha: number; worldTransform: number[]; } export interface RenderSession { context: CanvasRenderingContext2D; maskManager: CanvasMaskManager; scaleMode: scaleModes; smoothProperty: string; roundPixels: boolean; } export interface ShaderAttribute { // TODO: Find signature of shader attributes } export interface FilterBlock { visible: boolean; renderable: boolean; } export class AbstractFilter { constructor(fragmentSrc: string | string[], uniforms: any); dirty: boolean; padding: number; uniforms: any; fragmentSrc: string | string[]; apply(frameBuffer: WebGLFramebuffer): void; syncUniforms(): void; } export class AlphaMaskFilter extends AbstractFilter { constructor(texture: Texture); map: Texture; onTextureLoaded(): void; } export class AsciiFilter extends AbstractFilter { size: number; } export class AssetLoader implements Mixin { assetURLs: string[]; crossorigin: boolean; loadersByType: { [key: string]: Loader }; constructor(assetURLs: string[], crossorigin: boolean); listeners(eventName: string): Function[]; emit(eventName: string, data?: any): boolean; dispatchEvent(eventName: string, data?: any): boolean; on(eventName: string, fn: Function): Function; addEventListener(eventName: string, fn: Function): Function; once(eventName: string, fn: Function): Function; off(eventName: string, fn: Function): Function; removeAllEventListeners(eventName: string): void; load(): void; } export class AtlasLoader implements Mixin { url: string; baseUrl: string; crossorigin: boolean; loaded: boolean; constructor(url: string, crossorigin: boolean); listeners(eventName: string): Function[]; emit(eventName: string, data?: any): boolean; dispatchEvent(eventName: string, data?: any): boolean; on(eventName: string, fn: Function): Function; addEventListener(eventName: string, fn: Function): Function; once(eventName: string, fn: Function): Function; off(eventName: string, fn: Function): Function; removeAllEventListeners(eventName: string): void; load(): void; } export class BaseTexture implements Mixin { static fromImage(imageUrl: string, crossorigin?: boolean, scaleMode?: scaleModes): BaseTexture; static fromCanvas(canvas: HTMLCanvasElement, scaleMode?: scaleModes): BaseTexture; constructor(source: HTMLImageElement, scaleMode: scaleModes); constructor(source: HTMLCanvasElement, scaleMode: scaleModes); height: number; hasLoaded: boolean; mipmap: boolean; premultipliedAlpha: boolean; resolution: number; scaleMode: scaleModes; skipRender: boolean; source: HTMLImageElement; width: number; listeners(eventName: string): Function[]; emit(eventName: string, data?: any): boolean; dispatchEvent(eventName: string, data?: any): boolean; on(eventName: string, fn: Function): Function; addEventListener(eventName: string, fn: Function): Function; once(eventName: string, fn: Function): Function; off(eventName: string, fn: Function): Function; removeAllEventListeners(eventName: string): void; forceLoaded(width: number, height: number): void; destroy(): void; dirty(): void; updateSourceImage(newSrc: string): void; unloadFromGPU(): void; } export class BitmapFontLoader implements Mixin { constructor(url: string, crossorigin: boolean); baseUrl: string; crossorigin: boolean; texture: Texture; url: string; listeners(eventName: string): Function[]; emit(eventName: string, data?: any): boolean; dispatchEvent(eventName: string, data?: any): boolean; on(eventName: string, fn: Function): Function; addEventListener(eventName: string, fn: Function): Function; once(eventName: string, fn: Function): Function; off(eventName: string, fn: Function): Function; removeAllEventListeners(eventName: string): void; load(): void; } export class BlurFilter extends AbstractFilter { blur: number; blurX: number; blurY: number; } export class BlurXFilter extends AbstractFilter { blur: number; } export class BlurYFilter extends AbstractFilter { blur: number; } export class CanvasBuffer { constructor(width: number, height: number); canvas: HTMLCanvasElement; context: CanvasRenderingContext2D; height: number; width: number; destroy(): void; clear(): void; resize(width: number, height: number): void; } export class CanvasPool { static create(parent: HTMLElement, width?: number, height?: number): HTMLCanvasElement; static getFirst(): HTMLCanvasElement; static remove(parent: HTMLElement): void; static removeByCanvas(canvas: HTMLCanvasElement): HTMLCanvasElement; static getTotal(): number; static getFree(): number; } export class CanvasMaskManager { pushMask(maskData: MaskData, renderSession: RenderSession): void; popMask(renderSession: RenderSession): void; } export class CanvasRenderer implements PixiRenderer { constructor(game: Phaser.Game); game: Phaser.Game; type: number; resolution: number; clearBeforeRender: boolean; transparent: boolean; autoResize: boolean; width: number; height: number; view: HTMLCanvasElement; context: CanvasRenderingContext2D; refresh: boolean; count: number; maskManager: CanvasMaskManager; renderSession: RenderSession; render(stage: DisplayObjectContainer): void; resize(width: number, height: number): void; destroy(removeView?: boolean): void; } export class CanvasTinter { static getTintedTexture(sprite: Sprite, color: number): HTMLCanvasElement; static tintWithMultiply(texture: Texture, color: number, canvas: HTMLCanvasElement): void; static tintWithOverlay(texture: Texture, color: number, canvas: HTMLCanvasElement): void; static tintWithPerPixel(texture: Texture, color: number, canvas: HTMLCanvasElement): void; static canUseMultiply: boolean; static tintMethod: any; } export class Circle implements HitArea { constructor(x: number, y: number, radius: number); x: number; y: number; radius: number; clone(): Circle; contains(x: number, y: number): boolean; getBounds(): Rectangle; } export class ColorMatrixFilter extends AbstractFilter { matrix: Matrix; } export class ColorStepFilter extends AbstractFilter { step: number; } export class ConvolutionFilter extends AbstractFilter { constructor(matrix: number[], width: number, height: number); matrix: Matrix; width: number; height: number; } export class CrossHatchFilter extends AbstractFilter { blur: number; } export class DisplacementFilter extends AbstractFilter { constructor(texture: Texture); map: Texture; offset: Point; scale: Point; } export class DotScreenFilter extends AbstractFilter { angle: number; scale: Point; } export class DisplayObject { alpha: number; buttonMode: boolean; cacheAsBitmap: boolean; defaultCursor: string; filterArea: Rectangle; filters: AbstractFilter[]; hitArea: HitArea; interactive: boolean; mask: Graphics; parent: DisplayObjectContainer; pivot: Point; position: Point; renderable: boolean; rotation: number; scale: Point; stage: DisplayObjectContainer; visible: boolean; worldAlpha: number; worldPosition: PIXI.Point; worldScale: PIXI.Point; worldRotation: number; worldVisible: boolean; x: number; y: number; click(e: InteractionData): void; displayObjectUpdateTransform(): void; getBounds(matrix?: Matrix): Rectangle; getLocalBounds(): Rectangle; generateTexture(resolution?: number, scaleMode?: number, renderer?: PixiRenderer): RenderTexture; mousedown(e: InteractionData): void; mouseout(e: InteractionData): void; mouseover(e: InteractionData): void; mouseup(e: InteractionData): void; mousemove(e: InteractionData): void; mouseupoutside(e: InteractionData): void; rightclick(e: InteractionData): void; rightdown(e: InteractionData): void; rightup(e: InteractionData): void; rightupoutside(e: InteractionData): void; setStageReference(stage: DisplayObjectContainer): void; tap(e: InteractionData): void; toGlobal(position: Point): Point; toLocal(position: Point, from: DisplayObject): Point; touchend(e: InteractionData): void; touchendoutside(e: InteractionData): void; touchstart(e: InteractionData): void; touchmove(e: InteractionData): void; updateTransform(parent?: PIXI.DisplayObjectContainer): void; } export class DisplayObjectContainer extends DisplayObject { constructor(); children: DisplayObject[]; height: number; width: number; addChild(child: DisplayObject): DisplayObject; addChildAt(child: DisplayObject, index: number): DisplayObject; getBounds(): Rectangle; getChildAt(index: number): DisplayObject; getChildIndex(child: DisplayObject): number; getLocalBounds(): Rectangle; removeChild(child: DisplayObject): DisplayObject; removeChildAt(index: number): DisplayObject; removeChildren(beginIndex?: number, endIndex?: number): DisplayObject[]; removeStageReference(): void; setChildIndex(child: DisplayObject, index: number): void; swapChildren(child: DisplayObject, child2: DisplayObject): void; } export class Ellipse implements HitArea { constructor(x: number, y: number, width: number, height: number); x: number; y: number; width: number; height: number; clone(): Ellipse; contains(x: number, y: number): boolean; getBounds(): Rectangle; } export class Event { constructor(target: any, name: string, data: any); target: any; type: string; data: any; timeStamp: number; stopPropagation(): void; preventDefault(): void; stopImmediatePropagation(): void; } export class EventTarget { static mixin(obj: any): void; } export class FilterTexture { constructor(gl: WebGLRenderingContext, width: number, height: number, scaleMode: scaleModes); fragmentSrc: string[]; frameBuffer: WebGLFramebuffer; gl: WebGLRenderingContext; program: WebGLProgram; scaleMode: number; texture: WebGLTexture; clear(): void; resize(width: number, height: number): void; destroy(): void; } export class GraphicsData { constructor(lineWidth?: number, lineColor?: number, lineAlpha?: number, fillColor?: number, fillAlpha?: number, fill?: boolean, shape?: any); lineWidth: number; lineColor: number; lineAlpha: number; fillColor: number; fillAlpha: number; fill: boolean; shape: any; type: number; } export class Graphics extends DisplayObjectContainer { static POLY: number; static RECT: number; static CIRC: number; static ELIP: number; static RREC: number; blendMode: number; boundsPadding: number; fillAlpha: number; isMask: boolean; lineWidth: number; lineColor: number; tint: number; worldAlpha: number; arc(cx: number, cy: number, radius: number, startAngle: number, endAngle: number, anticlockwise: boolean): Graphics; arcTo(x1: number, y1: number, x2: number, y2: number, radius: number): Graphics; beginFill(color?: number, alpha?: number): Graphics; bezierCurveTo(cpX: number, cpY: number, cpX2: number, cpY2: number, toX: number, toY: number): Graphics; clear(): Graphics; destroyCachedSprite(): void; drawCircle(x: number, y: number, diameter: number): Graphics; drawEllipse(x: number, y: number, width: number, height: number): Graphics; drawPolygon(...path: any[]): Graphics; drawRect(x: number, y: number, width: number, height: number): Graphics; drawRoundedRect(x: number, y: number, width: number, height: number, radius: number): Graphics; drawShape(shape: Circle): GraphicsData; drawShape(shape: Rectangle): GraphicsData; drawShape(shape: Ellipse): GraphicsData; drawShape(shape: Polygon): GraphicsData; endFill(): Graphics; generateTexture(resolution?: number, scaleMode?: number): Texture; lineStyle(lineWidth?: number, color?: number, alpha?: number): Graphics; lineTo(x: number, y: number): Graphics; moveTo(x: number, y: number): Graphics; quadraticCurveTo(cpX: number, cpY: number, toX: number, toY: number): Graphics; } export class GrayFilter extends AbstractFilter { gray: number; } export class ImageLoader implements Mixin { constructor(url: string, crossorigin?: boolean); texture: Texture; listeners(eventName: string): Function[]; emit(eventName: string, data?: any): boolean; dispatchEvent(eventName: string, data?: any): boolean; on(eventName: string, fn: Function): Function; addEventListener(eventName: string, fn: Function): Function; once(eventName: string, fn: Function): Function; off(eventName: string, fn: Function): Function; removeAllEventListeners(eventName: string): void; load(): void; loadFramedSpriteSheet(frameWidth: number, frameHeight: number, textureName: string): void; } export class InteractionData { global: Point; target: Sprite; originalEvent: Event; getLocalPosition(displayObject: DisplayObject, point?: Point, globalPos?: Point): Point; } export class InteractionManager { currentCursorStyle: string; last: number; mouse: InteractionData; mouseOut: boolean; mouseoverEnabled: boolean; onMouseMove: Function; onMouseDown: Function; onMouseOut: Function; onMouseUp: Function; onTouchStart: Function; onTouchEnd: Function; onTouchMove: Function; pool: InteractionData[]; resolution: number; stage: DisplayObjectContainer; touches: { [id: string]: InteractionData }; constructor(stage: DisplayObjectContainer); } export class InvertFilter extends AbstractFilter { invert: number; } export class JsonLoader implements Mixin { constructor(url: string, crossorigin?: boolean); baseUrl: string; crossorigin: boolean; loaded: boolean; url: string; listeners(eventName: string): Function[]; emit(eventName: string, data?: any): boolean; dispatchEvent(eventName: string, data?: any): boolean; on(eventName: string, fn: Function): Function; addEventListener(eventName: string, fn: Function): Function; once(eventName: string, fn: Function): Function; off(eventName: string, fn: Function): Function; removeAllEventListeners(eventName: string): void; load(): void; } export class Matrix { a: number; b: number; c: number; d: number; tx: number; ty: number; append(matrix: Matrix): Matrix; apply(pos: Point, newPos: Point): Point; applyInverse(pos: Point, newPos: Point): Point; determineMatrixArrayType(): number[]; identity(): Matrix; rotate(angle: number): Matrix; fromArray(array: number[]): void; translate(x: number, y: number): Matrix; toArray(transpose: boolean): number[]; scale(x: number, y: number): Matrix; } export interface Mixin { listeners(eventName: string): Function[]; emit(eventName: string, data?: any): boolean; dispatchEvent(eventName: string, data?: any): boolean; on(eventName: string, fn: Function): Function; addEventListener(eventName: string, fn: Function): Function; once(eventName: string, fn: Function): Function; off(eventName: string, fn: Function): Function; removeAllEventListeners(eventName: string): void; } export class MovieClip extends Sprite { static fromFrames(frames: string[]): MovieClip; static fromImages(images: HTMLImageElement[]): HTMLImageElement; constructor(textures: Texture[]); animationSpeed: number; currentFrame: number; loop: boolean; playing: boolean; textures: Texture[]; totalFrames: number; gotoAndPlay(frameNumber: number): void; gotoAndStop(frameNumber: number): void; onComplete(): void; play(): void; stop(): void; } export class NoiseFilter extends AbstractFilter { noise: number; } export class NormalMapFilter extends AbstractFilter { map: Texture; offset: Point; scale: Point; } export class PixelateFilter extends AbstractFilter { size: number; } export interface IPixiShader { fragmentSrc: string[]; gl: WebGLRenderingContext; program: WebGLProgram; vertexSrc: string[]; destroy(): void; init(): void; } export class PixiShader implements IPixiShader { constructor(gl: WebGLRenderingContext); attributes: ShaderAttribute[]; defaultVertexSrc: string[]; dirty: boolean; firstRun: boolean; textureCount: number; fragmentSrc: string[]; gl: WebGLRenderingContext; program: WebGLProgram; vertexSrc: string[]; initSampler2D(): void; initUniforms(): void; syncUniforms(): void; destroy(): void; init(): void; } export class PixiFastShader implements IPixiShader { constructor(gl: WebGLRenderingContext); textureCount: number; fragmentSrc: string[]; gl: WebGLRenderingContext; program: WebGLProgram; vertexSrc: string[]; destroy(): void; init(): void; } export class PrimitiveShader implements IPixiShader { constructor(gl: WebGLRenderingContext); fragmentSrc: string[]; gl: WebGLRenderingContext; program: WebGLProgram; vertexSrc: string[]; destroy(): void; init(): void; } export class ComplexPrimitiveShader implements IPixiShader { constructor(gl: WebGLRenderingContext); fragmentSrc: string[]; gl: WebGLRenderingContext; program: WebGLProgram; vertexSrc: string[]; destroy(): void; init(): void; } export class StripShader implements IPixiShader { constructor(gl: WebGLRenderingContext); fragmentSrc: string[]; gl: WebGLRenderingContext; program: WebGLProgram; vertexSrc: string[]; destroy(): void; init(): void; } export class Point { constructor(x?: number, y?: number); x: number; y: number; clone(): Point; set(x: number, y: number): void; } export class Polygon implements HitArea { constructor(points: Point[]); constructor(points: number[]); constructor(...points: Point[]); constructor(...points: number[]); points: any[]; //number[] Point[] clone(): Polygon; contains(x: number, y: number): boolean; } export class Rectangle implements HitArea { constructor(x?: number, y?: number, width?: number, height?: number); x: number; y: number; width: number; height: number; clone(): Rectangle; contains(x: number, y: number): boolean; } export class RGBSplitFilter extends AbstractFilter { red: Point; green: Point; blue: Point; } export class Rope extends Strip { points: Point[]; vertices: number[]; constructor(texture: Texture, points: Point[]); refresh(): void; setTexture(texture: Texture): void; } export class RoundedRectangle implements HitArea { constructor(x?: number, y?: number, width?: number, height?: number, radius?: number); x: number; y: number; width: number; height: number; radius: number; clone(): RoundedRectangle; contains(x: number, y: number): boolean; } export class SepiaFilter extends AbstractFilter { sepia: number; } export class SmartBlurFilter extends AbstractFilter { blur: number; } export class SpineLoader implements Mixin { url: string; crossorigin: boolean; loaded: boolean; constructor(url: string, crossOrigin: boolean); listeners(eventName: string): Function[]; emit(eventName: string, data?: any): boolean; dispatchEvent(eventName: string, data?: any): boolean; on(eventName: string, fn: Function): Function; addEventListener(eventName: string, fn: Function): Function; once(eventName: string, fn: Function): Function; off(eventName: string, fn: Function): Function; removeAllEventListeners(eventName: string): void; load(): void; } export class SpineTextureLoader { constructor(basePath: string, crossorigin: boolean); load(page: AtlasPage, file: string): void; unload(texture: BaseTexture): void; } export class Sprite extends DisplayObjectContainer { static fromFrame(frameId: string): Sprite; static fromImage(url: string, crossorigin?: boolean, scaleMode?: scaleModes): Sprite; constructor(texture: Texture); anchor: Point; blendMode: blendModes; shader: IPixiShader; texture: Texture; tint: number; setTexture(texture: Texture, destroyBase?: boolean): void; } export class SpriteBatch extends DisplayObjectContainer { constructor(texture?: Texture); ready: boolean; textureThing: Texture; initWebGL(gl: WebGLRenderingContext): void; } export class SpriteSheetLoader implements Mixin { constructor(url: string, crossorigin?: boolean); baseUrl: string; crossorigin: boolean; frames: any; texture: Texture; url: string; listeners(eventName: string): Function[]; emit(eventName: string, data?: any): boolean; dispatchEvent(eventName: string, data?: any): boolean; on(eventName: string, fn: Function): Function; addEventListener(eventName: string, fn: Function): Function; once(eventName: string, fn: Function): Function; off(eventName: string, fn: Function): Function; removeAllEventListeners(eventName: string): void; load(): void; } export class Strip extends DisplayObjectContainer { static DrawModes: { TRIANGLE_STRIP: number; TRIANGLES: number; } constructor(texture: Texture); blendMode: number; colors: number[]; dirty: boolean; indices: number[]; canvasPadding: number; texture: Texture; uvs: number[]; vertices: number[]; getBounds(matrix?: Matrix): Rectangle; } export class Texture implements Mixin { static emptyTexture: Texture; static fromCanvas(canvas: HTMLCanvasElement, scaleMode?: scaleModes): Texture; static fromFrame(frameId: string): Texture; static fromImage(imageUrl: string, crossorigin?: boolean, scaleMode?: scaleModes): Texture; static addTextureToCache(texture: Texture, id: string): void; static removeTextureFromCache(id: string): Texture; constructor(baseTexture: BaseTexture, frame?: Rectangle, crop?: Rectangle, trim?: Rectangle); baseTexture: BaseTexture; crop: Rectangle; frame: Rectangle; height: number; noFrame: boolean; requiresUpdate: boolean; trim: Point; width: number; scope: any; valid: boolean; listeners(eventName: string): Function[]; emit(eventName: string, data?: any): boolean; dispatchEvent(eventName: string, data?: any): boolean; on(eventName: string, fn: Function): Function; addEventListener(eventName: string, fn: Function): Function; once(eventName: string, fn: Function): Function; off(eventName: string, fn: Function): Function; removeAllEventListeners(eventName: string): void; destroy(destroyBase: boolean): void; setFrame(frame: Rectangle): void; } export class TilingSprite extends Sprite { constructor(texture: Texture, width: number, height: number); canvasBuffer: PIXI.CanvasBuffer; blendMode: number; refreshTexture: boolean; texture: Texture; textureDebug: boolean; tint: number; tilePosition: Point; tilePattern: PIXI.Texture; tileScale: Point; tileScaleOffset: Point; destroy(): void; generateTilingTexture(forcePowerOfTwo?: boolean): void; setTexture(texture: Texture): void; } export class TiltShiftFilter extends AbstractFilter { blur: number; gradientBlur: number; start: number; end: number; } export class TiltShiftXFilter extends AbstractFilter { blur: number; gradientBlur: number; start: number; end: number; updateDelta(): void; } export class TiltShiftYFilter extends AbstractFilter { blur: number; gradientBlur: number; start: number; end: number; updateDelta(): void; } export class TwistFilter extends AbstractFilter { angle: number; offset: Point; radius: number; } export class VideoTexture extends BaseTexture { static baseTextureFromVideo(video: HTMLVideoElement, scaleMode: number): BaseTexture; static textureFromVideo(video: HTMLVideoElement, scaleMode: number): Texture; static fromUrl(videoSrc: string, scaleMode?: number, autoPlay?: boolean, type?: string, loop?: boolean): Texture; controls: boolean; autoUpdate: boolean; type: string; changeSource(src: string, type: string, loop: boolean): void; play(): void; stop(): void; destroy(): void; updateBound(): void; onPlayStart: () => void; onPlayStop: () => void; onCanPlay: (event: any) => void; } export class WebGLBlendModeManager { currentBlendMode: number; destroy(): void; setBlendMode(blendMode: number): boolean; setContext(gl: WebGLRenderingContext): void; } export class WebGLFastSpriteBatch { constructor(gl: CanvasRenderingContext2D); currentBatchSize: number; currentBaseTexture: BaseTexture; currentBlendMode: number; renderSession: RenderSession; drawing: boolean; indexBuffer: any; indices: number[]; lastIndexCount: number; matrix: Matrix; maxSize: number; shader: IPixiShader; size: number; vertexBuffer: any; vertices: number[]; vertSize: number; end(): void; begin(spriteBatch: SpriteBatch, renderSession: RenderSession): void; destroy(removeView?: boolean): void; flush(): void; render(spriteBatch: SpriteBatch): void; renderSprite(sprite: Sprite): void; setContext(gl: WebGLRenderingContext): void; start(): void; stop(): void; } export class WebGLFilterManager { filterStack: AbstractFilter[]; transparent: boolean; offsetX: number; offsetY: number; applyFilterPass(filter: AbstractFilter, filterArea: Texture, width: number, height: number): void; begin(renderSession: RenderSession, buffer: ArrayBuffer): void; destroy(): void; initShaderBuffers(): void; popFilter(): void; pushFilter(filterBlock: FilterBlock): void; setContext(gl: WebGLRenderingContext): void; } export class WebGLGraphics { static graphicsDataPool: any[]; static renderGraphics(graphics: Graphics, renderRession: RenderSession): void; static updateGraphics(graphics: Graphics, gl: WebGLRenderingContext): void; static switchMode(webGL: WebGLRenderingContext, type: number): any; //WebGLData static buildRectangle(graphicsData: GraphicsData, webGLData: any): void; static buildRoundedRectangle(graphicsData: GraphicsData, webGLData: any): void; static quadraticBezierCurve(fromX: number, fromY: number, cpX: number, cpY: number, toX: number, toY: number): number[]; static buildCircle(graphicsData: GraphicsData, webGLData: any): void; static buildLine(graphicsData: GraphicsData, webGLData: any): void; static buildComplexPoly(graphicsData: GraphicsData, webGLData: any): void; static buildPoly(graphicsData: GraphicsData, webGLData: any): boolean; reset(): void; upload(): void; } export class WebGLGraphicsData { constructor(gl: WebGLRenderingContext); gl: WebGLRenderingContext; glPoints: any[]; color: number[]; points: any[]; indices: any[]; buffer: WebGLBuffer; indexBuffer: WebGLBuffer; mode: number; alpha: number; dirty: boolean; reset(): void; upload(): void; } export class WebGLMaskManager { destroy(): void; popMask(renderSession: RenderSession): void; pushMask(maskData: any[], renderSession: RenderSession): void; setContext(gl: WebGLRenderingContext): void; } export class WebGLRenderer implements PixiRenderer { static createWebGLTexture(texture: Texture, gl: WebGLRenderingContext): void; constructor(game: Phaser.Game); game: Phaser.Game; type: number; resolution: number; transparent: boolean; autoResize: boolean; preserveDrawingBuffer: boolean; clearBeforeRender: boolean; width: number; height: number; view: HTMLCanvasElement; projection: Point; offset: Point; shaderManager: WebGLShaderManager; spriteBatch: WebGLSpriteBatch; maskManager: WebGLMaskManager; filterManager: WebGLFilterManager; stencilManager: WebGLStencilManager; blendModeManager: WebGLBlendModeManager; renderSession: RenderSession; initContext(): void; render(stage: DisplayObjectContainer): void; renderDisplayObject(displayObject: DisplayObject, projection: Point, buffer: WebGLBuffer): void; resize(width: number, height: number): void; updateTexture(texture: Texture): void; destroy(): void; mapBlendModes(): void; } export class WebGLShaderManager { maxAttibs: number; attribState: any[]; stack: any[]; tempAttribState: any[]; destroy(): void; setAttribs(attribs: ShaderAttribute[]): void; setContext(gl: WebGLRenderingContext): void; setShader(shader: IPixiShader): boolean; } export class WebGLStencilManager { stencilStack: any[]; reverse: boolean; count: number; bindGraphics(graphics: Graphics, webGLData: any[], renderSession: RenderSession): void; destroy(): void; popStencil(graphics: Graphics, webGLData: any[], renderSession: RenderSession): void; pushStencil(graphics: Graphics, webGLData: any[], renderSession: RenderSession): void; setContext(gl: WebGLRenderingContext): void; } export class WebGLSpriteBatch { blendModes: number[]; colors: number[]; currentBatchSize: number; currentBaseTexture: Texture; defaultShader: AbstractFilter; dirty: boolean; drawing: boolean; indices: number[]; lastIndexCount: number; positions: number[]; textures: Texture[]; shaders: IPixiShader[]; size: number; sprites: any[]; //todo Sprite[]? vertices: number[]; vertSize: number; begin(renderSession: RenderSession): void; destroy(): void; end(): void; flush(shader?: IPixiShader): void; render(sprite: Sprite): void; renderBatch(texture: Texture, size: number, startIndex: number): void; renderTilingSprite(sprite: TilingSprite): void; setBlendMode(blendMode: blendModes): void; setContext(gl: WebGLRenderingContext): void; start(): void; stop(): void; } export class RenderTexture extends Texture { constructor(width?: number, height?: number, renderer?: PixiRenderer, scaleMode?: scaleModes, resolution?: number); frame: Rectangle; baseTexture: BaseTexture; renderer: PixiRenderer; resolution: number; valid: boolean; clear(): void; getBase64(): string; getCanvas(): HTMLCanvasElement; getImage(): HTMLImageElement; resize(width: number, height: number, updateBase: boolean): void; render(displayObject: DisplayObject, matrix?: Matrix, clear?: boolean): void; } //SPINE export class BoneData { constructor(name: string, parent?: any); name: string; parent: any; length: number; x: number; y: number; rotation: number; scaleX: number; scaleY: number; } export class SlotData { constructor(name: string, boneData: BoneData); name: string; boneData: BoneData; r: number; g: number; b: number; a: number; attachmentName: string; } export class Bone { constructor(boneData: BoneData, parent?: any); data: BoneData; parent: any; yDown: boolean; x: number; y: number; rotation: number; scaleX: number; scaleY: number; worldRotation: number; worldScaleX: number; worldScaleY: number; updateWorldTransform(flipX: boolean, flip: boolean): void; setToSetupPose(): void; } export class Slot { constructor(slotData: SlotData, skeleton: Skeleton, bone: Bone); data: SlotData; skeleton: Skeleton; bone: Bone; r: number; g: number; b: number; a: number; attachment: RegionAttachment; setAttachment(attachment: RegionAttachment): void; setAttachmentTime(time: number): void; getAttachmentTime(): number; setToSetupPose(): void; } export class Skin { constructor(name: string); name: string; attachments: any; addAttachment(slotIndex: number, name: string, attachment: RegionAttachment): void; getAttachment(slotIndex: number, name: string): void; } export class Animation { constructor(name: string, timelines: ISpineTimeline[], duration: number); name: string; timelines: ISpineTimeline[]; duration: number; apply(skeleton: Skeleton, time: number, loop: boolean): void; min(skeleton: Skeleton, time: number, loop: boolean, alpha: number): void; } export class Curves { constructor(frameCount: number); curves: number[]; setLinear(frameIndex: number): void; setStepped(frameIndex: number): void; setCurve(frameIndex: number, cx1: number, cy1: number, cx2: number, cy2: number): void; getCurvePercent(frameIndex: number, percent: number): number; } export interface ISpineTimeline { curves: Curves; frames: number[]; getFrameCount(): number; apply(skeleton: Skeleton, time: number, alpha: number): void; } export class RotateTimeline implements ISpineTimeline { constructor(frameCount: number); curves: Curves; frames: number[]; boneIndex: number; getFrameCount(): number; setFrame(frameIndex: number, time: number, angle: number): void; apply(skeleton: Skeleton, time: number, alpha: number): void; } export class TranslateTimeline implements ISpineTimeline { constructor(frameCount: number); curves: Curves; frames: number[]; boneIndex: number; getFrameCount(): number; setFrame(frameIndex: number, time: number, x: number, y: number): void; apply(skeleton: Skeleton, time: number, alpha: number): void; } export class ScaleTimeline implements ISpineTimeline { constructor(frameCount: number); curves: Curves; frames: number[]; boneIndex: number; getFrameCount(): number; setFrame(frameIndex: number, time: number, x: number, y: number): void; apply(skeleton: Skeleton, time: number, alpha: number): void; } export class ColorTimeline implements ISpineTimeline { constructor(frameCount: number); curves: Curves; frames: number[]; boneIndex: number; getFrameCount(): number; setFrame(frameIndex: number, time: number, r: number, g: number, b: number, a: number): void; apply(skeleton: Skeleton, time: number, alpha: number): void; } export class AttachmentTimeline implements ISpineTimeline { constructor(frameCount: number); curves: Curves; frames: number[]; attachmentNames: string[]; slotIndex: number; getFrameCount(): number; setFrame(frameIndex: number, time: number, attachmentName: string): void; apply(skeleton: Skeleton, time: number, alpha: number): void; } export class SkeletonData { bones: Bone[]; slots: Slot[]; skins: Skin[]; animations: Animation[]; defaultSkin: Skin; findBone(boneName: string): Bone; findBoneIndex(boneName: string): number; findSlot(slotName: string): Slot; findSlotIndex(slotName: string): number; findSkin(skinName: string): Skin; findAnimation(animationName: string): Animation; } export class Skeleton { constructor(skeletonData: SkeletonData); data: SkeletonData; bones: Bone[]; slots: Slot[]; drawOrder: any[]; x: number; y: number; skin: Skin; r: number; g: number; b: number; a: number; time: number; flipX: boolean; flipY: boolean; updateWorldTransform(): void; setToSetupPose(): void; setBonesToSetupPose(): void; setSlotsToSetupPose(): void; getRootBone(): Bone; findBone(boneName: string): Bone; fineBoneIndex(boneName: string): number; findSlot(slotName: string): Slot; findSlotIndex(slotName: string): number; setSkinByName(skinName: string): void; setSkin(newSkin: Skin): void; getAttachmentBySlotName(slotName: string, attachmentName: string): RegionAttachment; getAttachmentBySlotIndex(slotIndex: number, attachmentName: string): RegionAttachment; setAttachment(slotName: string, attachmentName: string): void; update(data: number): void; } export class RegionAttachment { offset: number[]; uvs: number[]; x: number; y: number; rotation: number; scaleX: number; scaleY: number; width: number; height: number; rendererObject: any; regionOffsetX: number; regionOffsetY: number; regionWidth: number; regionHeight: number; regionOriginalWidth: number; regionOriginalHeight: number; setUVs(u: number, v: number, u2: number, v2: number, rotate: number): void; updateOffset(): void; computeVertices(x: number, y: number, bone: Bone, vertices: number[]): void; } export class AnimationStateData { constructor(skeletonData: SkeletonData); skeletonData: SkeletonData; animationToMixTime: any; defaultMix: number; setMixByName(fromName: string, toName: string, duration: number): void; setMix(from: string, to: string): number; } export class AnimationState { constructor(stateData: any); animationSpeed: number; current: any; previous: any; currentTime: number; previousTime: number; currentLoop: boolean; previousLoop: boolean; mixTime: number; mixDuration: number; queue: Animation[]; update(delta: number): void; apply(skeleton: any): void; clearAnimation(): void; setAnimation(animation: any, loop: boolean): void; setAnimationByName(animationName: string, loop: boolean): void; addAnimationByName(animationName: string, loop: boolean, delay: number): void; addAnimation(animation: any, loop: boolean, delay: number): void; isComplete(): number; } export class SkeletonJson { constructor(attachmentLoader: AtlasAttachmentLoader); attachmentLoader: AtlasAttachmentLoader; scale: number; readSkeletonData(root: any): SkeletonData; readAttachment(skin: Skin, name: string, map: any): RegionAttachment; readAnimation(name: string, map: any, skeletonData: SkeletonData): void; readCurve(timeline: ISpineTimeline, frameIndex: number, valueMap: any): void; toColor(hexString: string, colorIndex: number): number; } export class Atlas { static FORMAT: { alpha: number; intensity: number; luminanceAlpha: number; rgb565: number; rgba4444: number; rgb888: number; rgba8888: number; } static TextureFilter: { nearest: number; linear: number; mipMap: number; mipMapNearestNearest: number; mipMapLinearNearest: number; mipMapNearestLinear: number; mipMapLinearLinear: number; } static textureWrap: { mirroredRepeat: number; clampToEdge: number; repeat: number; } constructor(atlasText: string, textureLoader: AtlasLoader); textureLoader: AtlasLoader; pages: AtlasPage[]; regions: AtlasRegion[]; findRegion(name: string): AtlasRegion; dispose(): void; updateUVs(page: AtlasPage): void; } export class AtlasPage { name: string; format: number; minFilter: number; magFilter: number; uWrap: number; vWrap: number; rendererObject: any; width: number; height: number; } export class AtlasRegion { page: AtlasPage; name: string; x: number; y: number; width: number; height: number; u: number; v: number; u2: number; v2: number; offsetX: number; offsetY: number; originalWidth: number; originalHeight: number; index: number; rotate: boolean; splits: any[]; pads: any[]; } export class AtlasReader { constructor(text: string); lines: string[]; index: number; trim(value: string): string; readLine(): string; readValue(): string; readTuple(tuple: number): number; } export class AtlasAttachmentLoader { constructor(atlas: Atlas); atlas: Atlas; newAttachment(skin: Skin, type: number, name: string): RegionAttachment; } export class Spine extends DisplayObjectContainer { constructor(url: string); autoUpdate: boolean; spineData: any; skeleton: Skeleton; stateData: AnimationStateData; state: AnimationState; slotContainers: DisplayObjectContainer[]; createSprite(slot: Slot, descriptor: { name: string }): Sprite[]; update(dt: number): void; } } declare function requestAnimFrame(callback: Function): void; declare module PIXI.PolyK { export function Triangulate(p: number[]): number[]; }