├── typings ├── main.d.ts ├── browser.d.ts ├── pixi-animationloop.d.ts ├── pixi-timer.d.ts ├── pixi-audio.d.ts ├── pixi-scene.d.ts ├── pixi-keyboard.d.ts ├── pixi-tween.d.ts ├── browser │ └── ambient │ │ └── pixi.js │ │ └── index.d.ts └── main │ └── ambient │ └── pixi.js │ └── index.d.ts ├── readme.md ├── typings.json ├── tsconfig.json ├── src ├── index.ts ├── config.ts ├── scenes │ ├── GameScene.ts │ └── LoaderScene.ts ├── plugins.ts └── Game.ts ├── index.html ├── .gitignore ├── package.json └── webpack.config.js /typings/main.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /readme.md: -------------------------------------------------------------------------------- 1 | typescript-pixi-game-template 2 | ==== 3 | 4 | On progress, but working ;) -------------------------------------------------------------------------------- /typings/browser.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /typings.json: -------------------------------------------------------------------------------- 1 | { 2 | "ambientDependencies": { 3 | "pixi.js": "registry:dt/pixi.js#3.0.9+20160317120654" 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "es5" 4 | }, 5 | "exclude": [ 6 | "node_modules", 7 | "typings/browser", 8 | "typings/browser.d.ts" 9 | ], 10 | "files": [ 11 | "typings/main.d.ts" 12 | ] 13 | } -------------------------------------------------------------------------------- /src/index.ts: -------------------------------------------------------------------------------- 1 | import plugins from './plugins'; 2 | import Game from './Game'; 3 | import config from './config'; 4 | 5 | //Force the typescript compiler to include this plugins in the bundle (avoid dead modules) 6 | let _plugins = plugins; 7 | 8 | //Init the game 9 | let game = new Game(config.pixi); 10 | game.initialize(); 11 | -------------------------------------------------------------------------------- /src/config.ts: -------------------------------------------------------------------------------- 1 | export default { 2 | pixi: { 3 | width: window.innerWidth, 4 | height: window.innerHeight, 5 | webgl: true, //false for 2dContext, true for autoDetectRenderer 6 | rendererOptions: { 7 | //pixi rendererOptions 8 | backgroundColor: 0xffffff 9 | } 10 | }, 11 | 12 | game: { 13 | port:{ width: 800, height: 600 } 14 | } 15 | }; 16 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Pixi.js Game 6 | 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /typings/pixi-animationloop.d.ts: -------------------------------------------------------------------------------- 1 | declare module PIXI { 2 | export class AnimationLoop extends EventEmitter{ 3 | constructor(renderer:WebGLRenderer|CanvasRenderer, stage?:Container); 4 | start():void; 5 | stop():void; 6 | renderer:WebGLRenderer|CanvasRenderer; 7 | stage:Container; 8 | time:number; 9 | realTime:number; 10 | delta:number; 11 | deltaMS:number; 12 | speed:number; 13 | maxFrame:number; 14 | raf:number; 15 | isRunning:boolean; 16 | stopOnVisibilityChange:boolean; 17 | protected _animate():void; 18 | } 19 | } 20 | 21 | declare module 'pixi-animationloop' { 22 | export default PIXI.AnimationLoop; 23 | } -------------------------------------------------------------------------------- /src/scenes/GameScene.ts: -------------------------------------------------------------------------------- 1 | import config from '../config'; 2 | 3 | export default class GameScene extends PIXI.scene.Scene{ 4 | background:PIXI.Graphics; 5 | name:string = "gameScene"; 6 | 7 | constructor(){ 8 | super(); 9 | this.on('init', this._init); 10 | } 11 | 12 | private _init():void{ 13 | this.createWorld(config.game.port.width, config.game.port.height); 14 | 15 | let ww = config.game.port.width/2; 16 | let hh = config.game.port.height/2; 17 | 18 | this.background = new PIXI.Graphics() 19 | .beginFill(0x000000) 20 | .drawRect(-ww, -hh,config.game.port.width, config.game.port.height) 21 | .endFill(); 22 | 23 | this.world.addChild(this.background); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Created by .ignore support plugin (hsz.mobi) 2 | ### Example user template template 3 | ### Example user template 4 | 5 | # IntelliJ project files 6 | .idea 7 | *.iml 8 | out 9 | gen### Node template 10 | # Logs 11 | logs 12 | *.log 13 | npm-debug.log* 14 | 15 | # Runtime data 16 | pids 17 | *.pid 18 | *.seed 19 | 20 | # Directory for instrumented libs generated by jscoverage/JSCover 21 | lib-cov 22 | 23 | # Coverage directory used by tools like istanbul 24 | coverage 25 | 26 | # Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) 27 | .grunt 28 | 29 | # node-waf configuration 30 | .lock-wscript 31 | 32 | # Compiled binary addons (http://nodejs.org/api/addons.html) 33 | build/Release 34 | 35 | # Dependency directory 36 | # https://docs.npmjs.com/misc/faq#should-i-check-my-node-modules-folder-into-git 37 | node_modules 38 | 39 | -------------------------------------------------------------------------------- /src/plugins.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | /// 4 | /// 5 | /// 6 | /// 7 | /// 8 | /* 9 | import all the plugins to extend pixi here. 10 | */ 11 | import AnimationLoopPlugin from 'pixi-animationloop'; 12 | import KeyboardPlugin from 'pixi-keyboard'; 13 | import TimerPlugin from 'pixi-timer'; 14 | import TweenPlugin from 'pixi-tween'; 15 | import ScenePlugin from 'pixi-scene'; 16 | import AudioPlugin from 'pixi-audio'; 17 | 18 | export default { 19 | AnimationLoopPlugin:AnimationLoopPlugin, 20 | ScenePlugin:ScenePlugin, 21 | TimerPlugin:TimerPlugin, 22 | TweenPlugin:TweenPlugin, 23 | KeyboardPlugin:KeyboardPlugin, 24 | AudioPlugin:AudioPlugin 25 | }; 26 | -------------------------------------------------------------------------------- /typings/pixi-timer.d.ts: -------------------------------------------------------------------------------- 1 | declare module PIXI { 2 | export let timerManager:timer.TimerManager; 3 | 4 | export module timer{ 5 | export class TimerManager{ 6 | constructor(); 7 | timers:Timer[]; 8 | update(delta:number):void; 9 | removeTimer(timer:Timer):void; 10 | addTimer(timer:Timer):void; 11 | createTimer(time:number):Timer; 12 | } 13 | 14 | export class Timer extends EventEmitter{ 15 | constructor(); 16 | time:number; 17 | manager:TimerManager; 18 | active:boolean; 19 | isStarted:boolean; 20 | isEnded:boolean; 21 | expire:boolean; 22 | delay:number; 23 | repeat:number; 24 | loop:boolean; 25 | addTo(manager:TimerManager):void; 26 | remove():void; 27 | start():void; 28 | stop():void; 29 | reset():void; 30 | update(delta:number, deltaMS?:number):void; 31 | } 32 | } 33 | } 34 | 35 | declare module 'pixi-timer' { 36 | export default PIXI.timer; 37 | } -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "typescript-pixi-game-template", 3 | "version": "1.0.0", 4 | "private": true, 5 | "description": "", 6 | "main": "./build/game.js", 7 | "author": "Nazariglez (http://www.nazariglez.com)", 8 | "scripts": { 9 | "start": "npm run dev", 10 | "dev": "webpack --config webpack.config.js --progress --inline --colors --watch", 11 | "build": "NODE_ENV=production webpack --config webpack.config.js --progress --colors -p" 12 | }, 13 | "keywords": [], 14 | "license": "MIT", 15 | "devDependencies": { 16 | "brfs": "^1.4.3", 17 | "json-loader": "^0.5.4", 18 | "pixi-animationloop": "^1.0.7", 19 | "pixi-audio": "^0.1.0", 20 | "pixi-keyboard": "^0.9.4", 21 | "pixi-scene": "^0.9.3", 22 | "pixi-timer": "^1.0.1", 23 | "pixi-tween": "^0.1.2", 24 | "pixi.js": "^3.0.10", 25 | "transform-loader": "^0.2.3", 26 | "ts-loader": "^0.8.1", 27 | "typescript": "^1.8.9", 28 | "webpack": "^1.12.14" 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /typings/pixi-audio.d.ts: -------------------------------------------------------------------------------- 1 | declare module PIXI { 2 | export let audioManager:audio.AudioManager; 3 | namespace loaders{ 4 | export function audioParser():(resource:Resource, cb:()=>void)=>void; 5 | } 6 | 7 | export module audio{ 8 | export class AudioManager{ 9 | constructor(); 10 | getAudio(name:string):Audio; 11 | removeAudio(audio:Audio):void; 12 | filterAudios(tag:string, value?:any):Audio[]; 13 | mute():void; 14 | unmute():void; 15 | pause():void; 16 | resume():void; 17 | } 18 | 19 | export class Audio extends utils.EventEmitter{ 20 | constructor(data:HTMLAudioElement|AudioBuffer, manager:AudioManager); 21 | manager:AudioManager; 22 | data:AudioBuffer|HTMLAudioElement; 23 | playing:boolean; 24 | paused:boolean; 25 | loop:boolean; 26 | volume:number; 27 | muted:boolean; 28 | play():void; 29 | stop():void; 30 | remove():void; 31 | } 32 | 33 | export function audioParser():(resource:PIXI.loaders.Resource, cb:()=>void)=>void; 34 | } 35 | } 36 | 37 | declare module 'pixi-audio' { 38 | export default PIXI.audio; 39 | } -------------------------------------------------------------------------------- /webpack.config.js: -------------------------------------------------------------------------------- 1 | var webpack = require('webpack'); 2 | var path = require('path'); 3 | 4 | var plugins = []; 5 | var production = process.env.NODE_ENV === "production"; 6 | 7 | if(production){ 8 | plugins.push( 9 | new webpack.optimize.UglifyJsPlugin({ 10 | minimize: true, 11 | compress: { 12 | warnings: false, 13 | pure_funcs: ['console.log'] 14 | }, 15 | output: {comments:false} 16 | }) 17 | ); 18 | } 19 | 20 | module.exports = { 21 | devtool: 'source-map', 22 | entry: ['pixi.js', './src/index.ts'], 23 | output: { 24 | filename: "./build/game.js" 25 | }, 26 | resolve: { 27 | // Add '.ts' and '.tsx' as a resolvable extension. 28 | extensions: ["", ".webpack.js", ".web.js", ".ts", ".tsx", ".js"] 29 | }, 30 | plugins: plugins, 31 | module: { 32 | postLoaders: [ 33 | { 34 | loader: "transform/cacheable?brfs" 35 | } 36 | ], 37 | loaders: [ 38 | { 39 | test: /\.json$/, 40 | include: path.join(__dirname, 'node_modules', 'pixi.js'), 41 | loader: 'json' 42 | }, 43 | // all files with a '.ts' or '.tsx' extension will be handled by 'ts-loader' 44 | { test: /\.tsx?$/, loader: "ts-loader" } 45 | ] 46 | } 47 | }; 48 | -------------------------------------------------------------------------------- /typings/pixi-scene.d.ts: -------------------------------------------------------------------------------- 1 | declare module PIXI { 2 | export interface Container{ 3 | update(delta:number):void; 4 | } 5 | 6 | export module scene{ 7 | 8 | export class Scene extends Container{ 9 | constructor(name?:string); 10 | name:string; 11 | manager:SceneManager; 12 | initialized:boolean; 13 | world:World; 14 | tweenManager:PIXI.tween.TweenManager; 15 | timerManager:PIXI.timer.TimerManager; 16 | init():void; 17 | update(delta:number):void; 18 | createWorld(resolutionX?:number, resolutionY?:number):World; 19 | } 20 | 21 | export class SceneManager extends Container{ 22 | constructor(renderer:WebGLRenderer|CanvasRenderer); 23 | renderer:WebGLRenderer|CanvasRenderer; 24 | scenes:Scene[]; 25 | scene:Scene; 26 | fixedHeight:number; 27 | fixedWidth:number; 28 | update(delta:number):void; 29 | addScene(scene:Scene):SceneManager; 30 | getSceneByName(name:string):Scene; 31 | goTo(name:string):SceneManager; 32 | createScene(name:string):Scene; 33 | resizeScenes():void; 34 | } 35 | 36 | export class World extends Container{ 37 | constructor(scene:Scene); 38 | resolutionX:void|number; 39 | resolutionY:void|number; 40 | update(delta:number):void; 41 | checkResolution():void; 42 | } 43 | 44 | } 45 | } 46 | 47 | declare module 'pixi-scene' { 48 | export default PIXI.scene; 49 | } -------------------------------------------------------------------------------- /src/Game.ts: -------------------------------------------------------------------------------- 1 | import LoaderScene from './scenes/LoaderScene'; 2 | import GameScene from './scenes/GameScene'; 3 | 4 | export default class Game { 5 | renderer:PIXI.WebGLRenderer|PIXI.CanvasRenderer; 6 | animationLoop:PIXI.AnimationLoop; 7 | 8 | constructor(config:any){ 9 | const Renderer:any = (config.webgl) ? PIXI.autoDetectRenderer : PIXI.CanvasRenderer; 10 | this.renderer = new Renderer(config.width || 800, config.height || 600, config.rendererOptions); 11 | document.body.appendChild(this.renderer.view); 12 | 13 | this.animationLoop = new PIXI.AnimationLoop(this.renderer, new PIXI.scene.SceneManager(this.renderer)); 14 | this.animationLoop.stopOnVisibilityChange = true; 15 | this.animationLoop.on('prerender', this.update.bind(this)); 16 | this.animationLoop.on('postrender', this._updateManagers.bind(this)); 17 | } 18 | 19 | initialize():void{ 20 | this.stage.fixedWidth = 600; 21 | this.stage.fixedHeight = 800; 22 | 23 | let gameScene:GameScene = new GameScene(); 24 | this.stage.addScene(gameScene); 25 | 26 | let loaderScene:LoaderScene = new LoaderScene(); 27 | loaderScene.load(()=>this.stage.goTo('gameScene')); 28 | this.stage.addScene(loaderScene); 29 | this.stage.scene = loaderScene; 30 | 31 | this.start(); 32 | } 33 | 34 | update():void{ 35 | if(this.stage.update)this.stage.update(this.animationLoop.delta); 36 | } 37 | 38 | _updateManagers():void{ 39 | PIXI.keyboardManager.update(); //keyboard don't need the delta time 40 | PIXI.tweenManager.update(this.animationLoop.delta); 41 | PIXI.timerManager.update(this.animationLoop.delta); 42 | } 43 | 44 | start():void{ 45 | this.animationLoop.start(); 46 | } 47 | 48 | stop():void{ 49 | this.animationLoop.stop(); 50 | } 51 | 52 | get stage():PIXI.scene.SceneManager{ 53 | return this.animationLoop.stage; 54 | } 55 | 56 | set stage(stage:PIXI.scene.SceneManager){ 57 | this.animationLoop.stage = stage; 58 | } 59 | } 60 | -------------------------------------------------------------------------------- /src/scenes/LoaderScene.ts: -------------------------------------------------------------------------------- 1 | import config from '../config'; 2 | let hd = window.devicePixelRatio === 2 ? "@2x" : ""; 3 | 4 | export default class LoaderScene extends PIXI.scene.Scene{ 5 | name = "loaderScene"; 6 | barWidth = 300; 7 | barHeight = 16; 8 | vel = 100; //Progress added per second 9 | loader:PIXI.loaders.Loader; 10 | isStarted:boolean; 11 | allLoaded:boolean; 12 | progress:number; 13 | loadBar:PIXI.Graphics; 14 | 15 | private _onLoadCallback:()=>void; 16 | 17 | resources = [ 18 | 19 | ]; 20 | 21 | constructor(){ 22 | super(); 23 | this.loader = PIXI.loader; 24 | this.loader.add(this.resources); 25 | this.isStarted = false; 26 | this.allLoaded = false; 27 | this.progress = 5; 28 | this._onLoadCallback = function(){}; 29 | 30 | this.on('init', this._init); 31 | } 32 | 33 | private _init(){ 34 | this.createWorld(config.game.port.width, config.game.port.height); 35 | //loadBar 36 | this.loadBar = new PIXI.Graphics(); 37 | this.drawBar(0.2); 38 | this.world.addChild(this.loadBar); 39 | } 40 | 41 | update(delta){ 42 | super.update(delta); 43 | if(!this.isStarted)return; 44 | 45 | if(this.progress < this.loader.progress || !this.resources.length){ 46 | this.progress += this.vel*delta; 47 | } 48 | 49 | if(this.progress >= 100 && !this.allLoaded){ 50 | this.allLoaded = true; 51 | this._onLoadCallback(); 52 | }else{ 53 | this.drawBar(this.progress); 54 | } 55 | } 56 | 57 | drawBar(progress){ 58 | if(progress > 100)progress = 100; 59 | this.loadBar.clear(); 60 | this.loadBar.beginFill(0xc0c0c0, 0.5); 61 | this.loadBar.drawRect(-(this.barWidth/2), -(this.barHeight/2), this.barWidth, this.barHeight); 62 | this.loadBar.endFill(); 63 | 64 | if(progress){ 65 | let calc = (progress*this.barWidth)/100; 66 | this.loadBar.beginFill(0x00f0ff, 0.5); 67 | this.loadBar.drawRect(-(this.barWidth/2), -(this.barHeight/2), calc, this.barHeight); 68 | this.loadBar.endFill(); 69 | } 70 | 71 | this.loadBar.lineStyle(2, 0x000000, 1); 72 | this.loadBar.drawRect(-(this.barWidth/2), -(this.barHeight/2), this.barWidth, this.barHeight); 73 | } 74 | 75 | load(callback){ 76 | this.isStarted = true; 77 | if(callback)this._onLoadCallback = callback; 78 | this.loader.load(); 79 | } 80 | } 81 | -------------------------------------------------------------------------------- /typings/pixi-keyboard.d.ts: -------------------------------------------------------------------------------- 1 | declare module PIXI { 2 | export class KeyboardManager extends EventEmitter{ 3 | constructor(); 4 | isEnabled:boolean; 5 | enable():void; 6 | disable():void; 7 | setPreventDefault(key:number, value?:boolean):void; 8 | isDown(key:number):boolean; 9 | isPressed(key:number):boolean; 10 | isReleased(key:number):boolean; 11 | update():void; 12 | getHotKey(key:number):HotKey; 13 | removeHotKey(key:HotKey):void; 14 | } 15 | 16 | export class HotKey{ 17 | constructor(key:number, manager:KeyboardManager); 18 | key:number; 19 | isDown:boolean; 20 | isPressed:boolean; 21 | isReleased:boolean; 22 | ctrl:boolean; 23 | shift:boolean; 24 | alt:boolean; 25 | remove():void; 26 | } 27 | 28 | export interface Key{ 29 | BACKSPACE:number; 30 | TAB:number; 31 | ENTER:number; 32 | SHIFT:number; 33 | PAUSE:number; 34 | CTRL:number; 35 | ALT:number; 36 | CAPS_LOCK:number; 37 | ESCAPE:number; 38 | SPACE:number; 39 | PAGE_UP:number; 40 | PAGE_DOWN:number; 41 | END:number; 42 | HOME:number; 43 | LEFT:number; 44 | UP:number; 45 | RIGHT:number; 46 | DOWN:number; 47 | PRINT_SCREEN:number; 48 | INSERT:number; 49 | DELETE:number; 50 | _0:number; 51 | _1:number; 52 | _2:number; 53 | _3:number; 54 | _4:number; 55 | _5:number; 56 | _6:number; 57 | _7:number; 58 | _8:number; 59 | _9:number; 60 | A:number; 61 | B:number; 62 | C:number; 63 | D:number; 64 | E:number; 65 | F:number; 66 | G:number; 67 | H:number; 68 | I:number; 69 | J:number; 70 | K:number; 71 | L:number; 72 | M:number; 73 | N:number; 74 | O:number; 75 | P:number; 76 | Q:number; 77 | R:number; 78 | S:number; 79 | T:number; 80 | U:number; 81 | V:number; 82 | W:number; 83 | X:number; 84 | Y:number; 85 | Z:number; 86 | CMD:number; 87 | CMD_RIGHT:number; 88 | NUM_0:number; 89 | NUM_1:number; 90 | NUM_2:number; 91 | NUM_3:number; 92 | NUM_4:number; 93 | NUM_5:number; 94 | NUM_6:number; 95 | NUM_7:number; 96 | NUM_8:number; 97 | NUM_9:number; 98 | MULTIPLY:number; 99 | ADD:number; 100 | SUBTRACT:number; 101 | DECIMAL_POINT:number; 102 | DIVIDE:number; 103 | F1:number; 104 | F2:number; 105 | F3:number; 106 | F4:number; 107 | F5:number; 108 | F6:number; 109 | F7:number; 110 | F8:number; 111 | F9:number; 112 | F10:number; 113 | F11:number; 114 | F12:number; 115 | NUM_LOCK:number; 116 | SCROLL_LOCK:number; 117 | SEMI_COLON:number; 118 | EQUAL:number; 119 | COMMA:number; 120 | DASH:number; 121 | PERIOD:number; 122 | FORWARD_SLASH:number; 123 | OPEN_BRACKET:number; 124 | BLACK_SLASH:number; 125 | CLOSE_BRACKET:number; 126 | SINGLE_QUOTE:number; 127 | } 128 | 129 | export let keyboardManager:KeyboardManager; 130 | } 131 | 132 | declare module 'pixi-keyboard' { 133 | export default PIXI.KeyboardManager; 134 | } 135 | -------------------------------------------------------------------------------- /typings/pixi-tween.d.ts: -------------------------------------------------------------------------------- 1 | declare module PIXI { 2 | export let tweenManager:tween.TweenManager; 3 | 4 | //todo fix this def 5 | 6 | export module tween{ 7 | export class TweenManager{ 8 | constructor(); 9 | tweens:Tween[]; 10 | update(delta:number):void; 11 | removeTween(tween:Tween):void; 12 | addTween(tween:Tween):void; 13 | createTween(target:any):Tween; 14 | getTweensForTarget(target:any):Tween[]; 15 | } 16 | 17 | export class Tween extends PIXI.utils.EventEmitter{ 18 | constructor(target:any, manager?:TweenManager); 19 | target:any; 20 | manager:TweenManager; 21 | time:number; 22 | active:boolean; 23 | easing:(num:number)=>number; 24 | expire:boolean; 25 | repeat:number; 26 | loop:boolean; 27 | delay:number; 28 | pingPong:boolean; 29 | isStarted:boolean; 30 | isEnded:boolean; 31 | path:TweenPath; 32 | pathReverse:boolean; 33 | addTo(manager:TweenManager):void; 34 | chain(tween:Tween):Tween; 35 | start():void; 36 | stop():void; 37 | to(object:any):void; 38 | from(object:any):void; 39 | remove():void; 40 | clear():void; 41 | reset():void; 42 | update(delta:number, deltaMS?:number); 43 | } 44 | 45 | export class TweenPath{ 46 | constructor(); 47 | closed:boolean; 48 | length:number; 49 | moveTo(x:number,y:number):TweenPath; 50 | lineTo(x:number,y:number):TweenPath; 51 | bezierCurveTo(cpX:number,cpY:number,cpX2:number,cpY2:number,toX:number,toY:number):TweenPath; 52 | quadraticCurveTo(cpX:number,cpY:number,toX:number,toY:number):TweenPath; 53 | arcTo(x1:number,y1:number,x2:number,y2:number,radius:number):TweenPath; 54 | arc(cx:number,cy:number,radius:number,startAngle:number,endAngle:number,anticlockwise:boolean):TweenPath; 55 | drawShape(shape:any):TweenPath; 56 | clear():TweenPath; 57 | } 58 | 59 | export class Easing{ 60 | static linear():(num:number)=>number; 61 | static inQuad():(num:number)=>number; 62 | static outQuad():(num:number)=>number; 63 | static inOutQuad():(num:number)=>number; 64 | static inCubic():(num:number)=>number; 65 | static outCubic():(num:number)=>number; 66 | static inOutCubic():(num:number)=>number; 67 | static inQuart():(num:number)=>number; 68 | static outQuart():(num:number)=>number; 69 | static inOutQuart():(num:number)=>number; 70 | static inQuint():(num:number)=>number; 71 | static outQuint():(num:number)=>number; 72 | static inOutQuint():(num:number)=>number; 73 | static inSine():(num:number)=>number; 74 | static outSine():(num:number)=>number; 75 | static inOutSine():(num:number)=>number; 76 | static inExpo():(num:number)=>number; 77 | static outExpo():(num:number)=>number; 78 | static inOutExpo():(num:number)=>number; 79 | static inCirc():(num:number)=>number; 80 | static outCirc():(num:number)=>number; 81 | static inOutCirc():(num:number)=>number; 82 | static inElastic():(num:number)=>number; 83 | static outElastic():(num:number)=>number; 84 | static inOutElastic():(num:number)=>number; 85 | static inBack():(num:number)=>number; 86 | static outBack():(num:number)=>number; 87 | static inOutBack():(num:number)=>number; 88 | static inBounce():(num:number)=>number; 89 | static outBounce():(num:number)=>number; 90 | static inOutBounce():(num:number)=>number; 91 | } 92 | } 93 | } 94 | 95 | declare module 'pixi-tween' { 96 | export default PIXI.tween; 97 | } 98 | -------------------------------------------------------------------------------- /typings/browser/ambient/pixi.js/index.d.ts: -------------------------------------------------------------------------------- 1 | // Generated by typings 2 | // Source: https://raw.githubusercontent.com/DefinitelyTyped/DefinitelyTyped/7de6c3dd94feaeb21f20054b9f30d5dabc5efabd/pixi.js/pixi.js.d.ts 3 | // Type definitions for Pixi.js 3.0.9 dev 4 | // Project: https://github.com/GoodBoyDigital/pixi.js/ 5 | // Definitions by: clark-stevenson 6 | // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped 7 | 8 | declare class PIXI { 9 | 10 | static VERSION: string; 11 | static PI_2: number; 12 | static RAD_TO_DEG: number; 13 | static DEG_TO_RAD: number; 14 | static TARGET_FPMS: number; 15 | static RENDERER_TYPE: { 16 | UNKNOWN: number; 17 | WEBGL: number; 18 | CANVAS: number; 19 | }; 20 | static BLEND_MODES: { 21 | NORMAL: number; 22 | ADD: number; 23 | MULTIPLY: number; 24 | SCREEN: number; 25 | OVERLAY: number; 26 | DARKEN: number; 27 | LIGHTEN: number; 28 | COLOR_DODGE: number; 29 | COLOR_BURN: number; 30 | HARD_LIGHT: number; 31 | SOFT_LIGHT: number; 32 | DIFFERENCE: number; 33 | EXCLUSION: number; 34 | HUE: number; 35 | SATURATION: number; 36 | COLOR: number; 37 | LUMINOSITY: number; 38 | 39 | }; 40 | static DRAW_MODES: { 41 | POINTS: number; 42 | LINES: number; 43 | LINE_LOOP: number; 44 | LINE_STRIP: number; 45 | TRIANGLES: number; 46 | TRIANGLE_STRIP: number; 47 | TRIANGLE_FAN: number; 48 | }; 49 | static SCALE_MODES: { 50 | DEFAULT: number; 51 | LINEAR: number; 52 | NEAREST: number; 53 | }; 54 | static RETINA_PREFIX: string; 55 | static RESOLUTION: number; 56 | static FILTER_RESOLUTION: number; 57 | static DEFAULT_RENDER_OPTIONS: { 58 | view: HTMLCanvasElement; 59 | resolution: number; 60 | antialias: boolean; 61 | forceFXAA: boolean; 62 | autoResize: boolean; 63 | transparent: boolean; 64 | backgroundColor: number; 65 | clearBeforeRender: boolean; 66 | preserveDrawingBuffer: boolean; 67 | roundPixels: boolean; 68 | }; 69 | static SHAPES: { 70 | POLY: number; 71 | RECT: number; 72 | CIRC: number; 73 | ELIP: number; 74 | RREC: number; 75 | }; 76 | static SPRITE_BATCH_SIZE: number; 77 | 78 | } 79 | 80 | declare namespace PIXI { 81 | 82 | export function autoDetectRenderer(width: number, height: number, options?: PIXI.RendererOptions, noWebGL?: boolean): PIXI.WebGLRenderer | PIXI.CanvasRenderer; 83 | export var loader: PIXI.loaders.Loader; 84 | 85 | //https://github.com/primus/eventemitter3 86 | export class EventEmitter { 87 | 88 | listeners(event: string): Function[]; 89 | emit(event: string, ...args: any[]): boolean; 90 | on(event: string, fn: Function, context?: any): EventEmitter; 91 | once(event: string, fn: Function, context?: any): EventEmitter; 92 | removeListener(event: string, fn: Function, context?: any, once?: boolean): EventEmitter; 93 | removeAllListeners(event: string): EventEmitter; 94 | 95 | off(event: string, fn: Function, context?: any, once?: boolean): EventEmitter; 96 | addListener(event: string, fn: Function, context?: any): EventEmitter; 97 | 98 | } 99 | 100 | ////////////////////////////////////////////////////////////////////////////// 101 | ////////////////////////////////CORE////////////////////////////////////////// 102 | ////////////////////////////////////////////////////////////////////////////// 103 | 104 | //display 105 | 106 | export class DisplayObject extends EventEmitter implements interaction.InteractiveTarget { 107 | 108 | //begin extras.cacheAsBitmap see https://github.com/pixijs/pixi-typescript/commit/1207b7f4752d79a088d6a9a465a3ec799906b1db 109 | protected _originalRenderWebGL: WebGLRenderer; 110 | protected _originalRenderCanvas: CanvasRenderer; 111 | protected _originalUpdateTransform: boolean; 112 | protected _originalHitTest: any; 113 | protected _cachedSprite: any; 114 | protected _originalDestroy: any; 115 | 116 | cacheAsBitmap: boolean; 117 | 118 | protected _renderCachedWebGL(renderer: WebGLRenderer): void; 119 | protected _initCachedDisplayObject(renderer: WebGLRenderer): void; 120 | protected _renderCachedCanvas(renderer: CanvasRenderer): void; 121 | protected _initCachedDisplayObjectCanvas(renderer: CanvasRenderer): void; 122 | protected _getCachedBounds(): Rectangle; 123 | protected _destroyCachedDisplayObject(): void; 124 | protected _cacheAsBitmapDestroy(): void; 125 | //end extras.cacheAsBitmap 126 | 127 | protected _sr: number; 128 | protected _cr: number; 129 | protected _bounds: Rectangle; 130 | protected _currentBounds: Rectangle; 131 | protected _mask: Rectangle; 132 | protected _cachedObject: any; 133 | 134 | updateTransform(): void; 135 | 136 | position: Point; 137 | scale: Point; 138 | pivot: Point; 139 | rotation: number; 140 | renderable: boolean; 141 | alpha: number; 142 | visible: boolean; 143 | parent: Container; 144 | worldAlpha: number; 145 | worldTransform: Matrix; 146 | filterArea: Rectangle; 147 | 148 | x: number; 149 | y: number; 150 | worldVisible: boolean; 151 | mask: Graphics | Sprite; 152 | filters: AbstractFilter[]; 153 | name: string; 154 | 155 | getBounds(matrix?: Matrix): Rectangle; 156 | getLocalBounds(): Rectangle; 157 | toGlobal(position: Point): Point; 158 | toLocal(position: Point, from?: DisplayObject): Point; 159 | generateTexture(renderer: CanvasRenderer | WebGLRenderer, scaleMode: number, resolution: number): Texture; 160 | setParent(container: Container): Container; 161 | setTransform(x?: number, y?: number, scaleX?: number, scaleY?: number, rotation?: number, skewX?: number, skewY?: number, pivotX?: number, pivotY?: number): DisplayObject; 162 | destroy(): void; 163 | getChildByName(name: string): DisplayObject; 164 | getGlobalPosition(point: Point): Point; 165 | 166 | interactive: boolean; 167 | buttonMode: boolean; 168 | interactiveChildren: boolean; 169 | defaultCursor: string; 170 | hitArea: HitArea; 171 | 172 | on(event: 'click', fn: (event: interaction.InteractionEvent) => void, context?: any): EventEmitter; 173 | on(event: 'mousedown', fn: (event: interaction.InteractionEvent) => void, context?: any): EventEmitter; 174 | on(event: 'mouseout', fn: (event: interaction.InteractionEvent) => void, context?: any): EventEmitter; 175 | on(event: 'mouseover', fn: (event: interaction.InteractionEvent) => void, context?: any): EventEmitter; 176 | on(event: 'mouseup', fn: (event: interaction.InteractionEvent) => void, context?: any): EventEmitter; 177 | on(event: 'mouseclick', fn: (event: interaction.InteractionEvent) => void, context?: any): EventEmitter; 178 | on(event: 'mouseupoutside', fn: (event: interaction.InteractionEvent) => void, context?: any): EventEmitter; 179 | on(event: 'rightclick', fn: (event: interaction.InteractionEvent) => void, context?: any): EventEmitter; 180 | on(event: 'rightdown', fn: (event: interaction.InteractionEvent) => void, context?: any): EventEmitter; 181 | on(event: 'rightup', fn: (event: interaction.InteractionEvent) => void, context?: any): EventEmitter; 182 | on(event: 'rightupoutside', fn: (event: interaction.InteractionEvent) => void, context?: any): EventEmitter; 183 | on(event: 'tap', fn: (event: interaction.InteractionEvent) => void, context?: any): EventEmitter; 184 | on(event: 'touchend', fn: (event: interaction.InteractionEvent) => void, context?: any): EventEmitter; 185 | on(event: 'touchendoutside', fn: (event: interaction.InteractionEvent) => void, context?: any): EventEmitter; 186 | on(event: 'touchmove', fn: (event: interaction.InteractionEvent) => void, context?: any): EventEmitter; 187 | on(event: 'touchstart', fn: (event: interaction.InteractionEvent) => void, context?: any): EventEmitter; 188 | on(event: string, fn: Function, context?: any): EventEmitter; 189 | 190 | once(event: 'click', fn: (event: interaction.InteractionEvent) => void, context?: any): EventEmitter; 191 | once(event: 'mousedown', fn: (event: interaction.InteractionEvent) => void, context?: any): EventEmitter; 192 | once(event: 'mouseout', fn: (event: interaction.InteractionEvent) => void, context?: any): EventEmitter; 193 | once(event: 'mouseover', fn: (event: interaction.InteractionEvent) => void, context?: any): EventEmitter; 194 | once(event: 'mouseup', fn: (event: interaction.InteractionEvent) => void, context?: any): EventEmitter; 195 | once(event: 'mouseclick', fn: (event: interaction.InteractionEvent) => void, context?: any): EventEmitter; 196 | once(event: 'mouseupoutside', fn: (event: interaction.InteractionEvent) => void, context?: any): EventEmitter; 197 | once(event: 'rightclick', fn: (event: interaction.InteractionEvent) => void, context?: any): EventEmitter; 198 | once(event: 'rightdown', fn: (event: interaction.InteractionEvent) => void, context?: any): EventEmitter; 199 | once(event: 'rightup', fn: (event: interaction.InteractionEvent) => void, context?: any): EventEmitter; 200 | once(event: 'rightupoutside', fn: (event: interaction.InteractionEvent) => void, context?: any): EventEmitter; 201 | once(event: 'tap', fn: (event: interaction.InteractionEvent) => void, context?: any): EventEmitter; 202 | once(event: 'touchend', fn: (event: interaction.InteractionEvent) => void, context?: any): EventEmitter; 203 | once(event: 'touchendoutside', fn: (event: interaction.InteractionEvent) => void, context?: any): EventEmitter; 204 | once(event: 'touchmove', fn: (event: interaction.InteractionEvent) => void, context?: any): EventEmitter; 205 | once(event: 'touchstart', fn: (event: interaction.InteractionEvent) => void, context?: any): EventEmitter; 206 | once(event: string, fn: Function, context?: any): EventEmitter; 207 | 208 | } 209 | 210 | export class Container extends DisplayObject { 211 | 212 | protected _renderWebGL(renderer: WebGLRenderer): void; 213 | protected _renderCanvas(renderer: CanvasRenderer): void; 214 | 215 | protected onChildrenChange: () => void; 216 | 217 | children: DisplayObject[]; 218 | 219 | width: number; 220 | height: number; 221 | 222 | addChild(child: DisplayObject): DisplayObject; 223 | addChildAt(child: DisplayObject, index: number): DisplayObject; 224 | swapChildren(child: DisplayObject, child2: DisplayObject): void; 225 | getChildIndex(child: DisplayObject): number; 226 | setChildIndex(child: DisplayObject, index: number): void; 227 | getChildAt(index: number): DisplayObject; 228 | removeChild(child: DisplayObject): DisplayObject; 229 | removeChildAt(index: number): DisplayObject; 230 | removeChildren(beginIndex?: number, endIndex?: number): DisplayObject[]; 231 | destroy(destroyChildren?: boolean): void; 232 | generateTexture(renderer: PIXI.CanvasRenderer | PIXI.WebGLRenderer, resolution?: number, scaleMode?: number): Texture; 233 | 234 | renderWebGL(renderer: WebGLRenderer): void; 235 | renderCanvas(renderer: CanvasRenderer): void; 236 | 237 | once(event: 'added', fn: (event: interaction.InteractionEvent) => void, context?: any): EventEmitter; 238 | once(event: string, fn: Function, context?: any): EventEmitter; 239 | once(event: 'removed', fn: (event: interaction.InteractionEvent) => void, context?: any): EventEmitter; 240 | once(event: string, fn: Function, context?: any): EventEmitter; 241 | on(event: 'added', fn: (event: interaction.InteractionEvent) => void, context?: any): EventEmitter; 242 | on(event: string, fn: Function, context?: any): EventEmitter; 243 | on(event: 'removed', fn: (event: interaction.InteractionEvent) => void, context?: any): EventEmitter; 244 | on(event: string, fn: Function, context?: any): EventEmitter; 245 | 246 | } 247 | 248 | //graphics 249 | 250 | export class GraphicsData { 251 | 252 | constructor(lineWidth: number, lineColor: number, lineAlpha: number, fillColor: number, fillAlpha: number, fill: boolean, shape: Circle | Rectangle | Ellipse | Polygon); 253 | 254 | lineWidth: number; 255 | lineColor: number; 256 | lineAlpha: number; 257 | fillColor: number; 258 | fillAlpha: number; 259 | fill: boolean; 260 | shape: Circle | Rectangle | Ellipse | Polygon; 261 | type: number; 262 | 263 | clone(): GraphicsData; 264 | 265 | protected _lineTint: number; 266 | protected _fillTint: number; 267 | 268 | } 269 | export class Graphics extends Container { 270 | 271 | protected boundsDirty: boolean; 272 | protected dirty: boolean; 273 | protected glDirty: boolean; 274 | 275 | fillAlpha: number; 276 | lineWidth: number; 277 | lineColor: number; 278 | tint: number; 279 | blendMode: number; 280 | isMask: boolean; 281 | boundsPadding: number; 282 | 283 | clone(): Graphics; 284 | lineStyle(lineWidth?: number, color?: number, alpha?: number): Graphics; 285 | moveTo(x: number, y: number): Graphics; 286 | lineTo(x: number, y: number): Graphics; 287 | quadraticCurveTo(cpX: number, cpY: number, toX: number, toY: number): Graphics; 288 | bezierCurveTo(cpX: number, cpY: number, cpX2: number, cpY2: number, toX: number, toY: number): Graphics; 289 | arcTo(x1: number, y1: number, x2: number, y2: number, radius: number): Graphics; 290 | arc(cx: number, cy: number, radius: number, startAngle: number, endAngle: number, anticlockwise?: boolean): Graphics; 291 | beginFill(color: number, alpha?: number): Graphics; 292 | endFill(): Graphics; 293 | drawRect(x: number, y: number, width: number, height: number): Graphics; 294 | drawRoundedRect(x: number, y: number, width: number, height: number, radius: number): Graphics; 295 | drawCircle(x: number, y: number, radius: number): Graphics; 296 | drawEllipse(x: number, y: number, width: number, height: number): Graphics; 297 | drawPolygon(path: number[] | Point[]): Graphics; 298 | clear(): Graphics; 299 | //todo 300 | generateTexture(renderer: WebGLRenderer | CanvasRenderer, resolution?: number, scaleMode?: number): Texture; 301 | getBounds(matrix?: Matrix): Rectangle; 302 | containsPoint(point: Point): boolean; 303 | updateLocalBounds(): void; 304 | drawShape(shape: Circle | Rectangle | Ellipse | Polygon): GraphicsData; 305 | 306 | } 307 | export interface GraphicsRenderer extends ObjectRenderer { 308 | //yikes todo 309 | } 310 | export interface WebGLGraphicsData { 311 | //yikes todo! 312 | } 313 | 314 | //math 315 | 316 | export class Point { 317 | 318 | x: number; 319 | y: number; 320 | 321 | constructor(x?: number, y?: number); 322 | 323 | clone(): Point; 324 | copy(p: Point): void; 325 | equals(p: Point): boolean; 326 | set(x?: number, y?: number): void; 327 | 328 | } 329 | export class Matrix { 330 | 331 | a: number; 332 | b: number; 333 | c: number; 334 | d: number; 335 | tx: number; 336 | ty: number; 337 | 338 | fromArray(array: number[]): void; 339 | toArray(transpose?: boolean, out?: number[]): number[]; 340 | apply(pos: Point, newPos?: Point): Point; 341 | applyInverse(pos: Point, newPos?: Point): Point; 342 | translate(x: number, y: number): Matrix; 343 | scale(x: number, y: number): Matrix; 344 | rotate(angle: number): Matrix; 345 | append(matrix: Matrix): Matrix; 346 | prepend(matrix: Matrix): Matrix; 347 | invert(): Matrix; 348 | identity(): Matrix; 349 | clone(): Matrix; 350 | copy(matrix: Matrix): Matrix; 351 | set(a: number, b: number, c: number, d: number, tx: number, ty: number): Matrix; 352 | setTransform(a: number, b: number, c: number, d: number, sr: number, cr: number, cy: number, sy: number, nsx: number, cs: number): PIXI.Matrix; 353 | 354 | static IDENTITY: Matrix; 355 | static TEMP_MATRIX: Matrix; 356 | 357 | } 358 | 359 | export interface HitArea { 360 | 361 | contains(x: number, y: number): boolean; 362 | 363 | } 364 | 365 | export class Circle implements HitArea { 366 | 367 | constructor(x?: number, y?: number, radius?: number); 368 | 369 | x: number; 370 | y: number; 371 | radius: number; 372 | type: number; 373 | 374 | clone(): Circle; 375 | contains(x: number, y: number): boolean; 376 | getBounds(): Rectangle; 377 | 378 | } 379 | export class Ellipse implements HitArea { 380 | 381 | constructor(x?: number, y?: number, width?: number, height?: number); 382 | 383 | x: number; 384 | y: number; 385 | width: number; 386 | height: number; 387 | type: number; 388 | 389 | clone(): Ellipse; 390 | contains(x: number, y: number): boolean; 391 | getBounds(): Rectangle; 392 | 393 | } 394 | export class Polygon implements HitArea { 395 | 396 | constructor(points: Point[]); 397 | constructor(points: number[]); 398 | constructor(...points: Point[]); 399 | constructor(...points: number[]); 400 | 401 | closed: boolean; 402 | points: number[]; 403 | type: number; 404 | 405 | clone(): Polygon; 406 | contains(x: number, y: number): boolean; 407 | 408 | 409 | } 410 | export class Rectangle implements HitArea { 411 | 412 | constructor(x?: number, y?: number, width?: number, height?: number); 413 | 414 | x: number; 415 | y: number; 416 | width: number; 417 | height: number; 418 | type: number; 419 | 420 | static EMPTY: Rectangle; 421 | 422 | clone(): Rectangle; 423 | contains(x: number, y: number): boolean; 424 | 425 | } 426 | export class RoundedRectangle implements HitArea { 427 | 428 | constructor(x?: number, y?: number, width?: number, height?: number, radius?: number); 429 | 430 | x: number; 431 | y: number; 432 | width: number; 433 | height: number; 434 | radius: number; 435 | type: number; 436 | 437 | static EMPTY: Rectangle; 438 | 439 | clone(): Rectangle; 440 | contains(x: number, y: number): boolean; 441 | 442 | } 443 | 444 | //particles 445 | 446 | export interface ParticleContainerProperties { 447 | 448 | scale?: boolean; 449 | position?: boolean; 450 | rotation?: boolean; 451 | uvs?: boolean; 452 | alpha?: boolean; 453 | 454 | } 455 | export class ParticleContainer extends Container { 456 | 457 | constructor(size?: number, properties?: ParticleContainerProperties, batchSize?: number); 458 | 459 | protected _maxSize: number; 460 | protected _batchSize: number; 461 | protected _properties: boolean[]; 462 | protected _buffers: WebGLBuffer[]; 463 | protected _bufferToUpdate: number; 464 | 465 | protected onChildrenChange: (smallestChildIndex?: number) => void; 466 | 467 | interactiveChildren: boolean; 468 | blendMode: number; 469 | roundPixels: boolean; 470 | 471 | setProperties(properties: ParticleContainerProperties): void; 472 | 473 | } 474 | export interface ParticleBuffer { 475 | 476 | gl: WebGLRenderingContext; 477 | vertSize: number; 478 | vertByteSize: number; 479 | size: number; 480 | dynamicProperties: any[]; 481 | staticProperties: any[]; 482 | 483 | staticStride: number; 484 | staticBuffer: any; 485 | staticData: any; 486 | dynamicStride: number; 487 | dynamicBuffer: any; 488 | dynamicData: any; 489 | 490 | initBuffers(): void; 491 | bind(): void; 492 | destroy(): void; 493 | 494 | } 495 | export interface ParticleRenderer { 496 | 497 | } 498 | export interface ParticleShader { 499 | 500 | } 501 | 502 | //renderers 503 | 504 | export interface RendererOptions { 505 | 506 | view?: HTMLCanvasElement; 507 | transparent?: boolean; 508 | antialias?: boolean; 509 | resolution?: number; 510 | clearBeforeRendering?: boolean; 511 | preserveDrawingBuffer?: boolean; 512 | forceFXAA?: boolean; 513 | roundPixels?: boolean; 514 | backgroundColor?: number; 515 | 516 | } 517 | export class SystemRenderer extends EventEmitter { 518 | 519 | protected _backgroundColor: number; 520 | protected _backgroundColorRgb: number[]; 521 | protected _backgroundColorString: string; 522 | protected _tempDisplayObjectParent: any; 523 | protected _lastObjectRendered: DisplayObject; 524 | 525 | constructor(system: string, width?: number, height?: number, options?: RendererOptions); 526 | 527 | type: number; 528 | width: number; 529 | height: number; 530 | view: HTMLCanvasElement; 531 | resolution: number; 532 | transparent: boolean; 533 | autoResize: boolean; 534 | blendModes: any; //todo? 535 | preserveDrawingBuffer: boolean; 536 | clearBeforeRender: boolean; 537 | roundPixels: boolean; 538 | backgroundColor: number; 539 | 540 | render(object: DisplayObject): void; 541 | resize(width: number, height: number): void; 542 | destroy(removeView?: boolean): void; 543 | 544 | } 545 | export class CanvasRenderer extends SystemRenderer { 546 | 547 | protected renderDisplayObject(displayObject: DisplayObject, context: CanvasRenderingContext2D): void; 548 | protected _mapBlendModes(): void; 549 | 550 | constructor(width?: number, height?: number, options?: RendererOptions); 551 | 552 | context: CanvasRenderingContext2D; 553 | refresh: boolean; 554 | maskManager: CanvasMaskManager; 555 | roundPixels: boolean; 556 | smoothProperty: string; 557 | 558 | render(object: DisplayObject): void; 559 | resize(w: number, h: number): void; 560 | 561 | } 562 | export class CanvasBuffer { 563 | 564 | protected clear(): void; 565 | 566 | constructor(width: number, height: number); 567 | 568 | canvas: HTMLCanvasElement; 569 | context: CanvasRenderingContext2D; 570 | 571 | width: number; 572 | height: number; 573 | 574 | resize(width: number, height: number): void; 575 | destroy(): void; 576 | 577 | } 578 | export class CanvasGraphics { 579 | 580 | static renderGraphicsMask(graphics: Graphics, context: CanvasRenderingContext2D): void; 581 | static updateGraphicsTint(graphics: Graphics): void; 582 | 583 | static renderGraphics(graphics: Graphics, context: CanvasRenderingContext2D): void; 584 | 585 | } 586 | export class CanvasMaskManager { 587 | 588 | pushMask(maskData: any, renderer: WebGLRenderer | CanvasRenderer): void; 589 | popMask(renderer: WebGLRenderer | CanvasRenderer): void; 590 | destroy(): void; 591 | 592 | } 593 | export class CanvasTinter { 594 | 595 | static getTintedTexture(sprite: DisplayObject, color: number): HTMLCanvasElement; 596 | static tintWithMultiply(texture: Texture, color: number, canvas: HTMLDivElement): void; 597 | static tintWithOverlay(texture: Texture, color: number, canvas: HTMLCanvasElement): void; 598 | static tintWithPerPixel(texture: Texture, color: number, canvas: HTMLCanvasElement): void; 599 | static roundColor(color: number): number; 600 | static cacheStepsPerColorChannel: number; 601 | static convertTintToImage: boolean; 602 | static vanUseMultiply: boolean; 603 | static tintMethod: Function; 604 | 605 | } 606 | export class WebGLRenderer extends SystemRenderer { 607 | 608 | protected _useFXAA: boolean; 609 | protected _FXAAFilter: filters.FXAAFilter; 610 | protected _contextOptions: { 611 | alpha: boolean; 612 | antiAlias: boolean; 613 | premultipliedAlpha: boolean; 614 | stencil: boolean; 615 | preseveDrawingBuffer: boolean; 616 | }; 617 | protected _renderTargetStack: RenderTarget[]; 618 | 619 | protected _initContext(): void; 620 | protected _createContext(): void; 621 | protected handleContextLost: (event: WebGLContextEvent) => void; 622 | protected _mapGlModes(): void; 623 | protected _managedTextures: Texture[]; 624 | 625 | constructor(width?: number, height?: number, options?: RendererOptions); 626 | 627 | drawCount: number; 628 | shaderManager: ShaderManager; 629 | maskManager: MaskManager; 630 | stencilManager: StencilManager; 631 | filterManager: FilterManager; 632 | blendModeManager: BlendModeManager; 633 | currentRenderTarget: RenderTarget; 634 | currentRenderer: ObjectRenderer; 635 | 636 | render(object: DisplayObject): void; 637 | renderDisplayObject(displayObject: DisplayObject, renderTarget: RenderTarget, clear: boolean): void; 638 | setObjectRenderer(objectRenderer: ObjectRenderer): void; 639 | setRenderTarget(renderTarget: RenderTarget): void; 640 | updateTexture(texture: BaseTexture | Texture): BaseTexture | Texture; 641 | destroyTexture(texture: BaseTexture | Texture, _skipRemove?: boolean): void; 642 | 643 | } 644 | export class AbstractFilter { 645 | 646 | protected vertexSrc: string[]; 647 | protected fragmentSrc: string[]; 648 | 649 | constructor(vertexSrc?: string | string[], fragmentSrc?: string | string[], uniforms?: any); 650 | 651 | uniforms: any; 652 | 653 | padding: number; 654 | 655 | getShader(renderer: WebGLRenderer): Shader; 656 | applyFilter(renderer: WebGLRenderer, input: RenderTarget, output: RenderTarget, clear?: boolean): void; 657 | syncUniform(uniform: WebGLUniformLocation): void; 658 | 659 | } 660 | export class SpriteMaskFilter extends AbstractFilter { 661 | 662 | constructor(sprite: Sprite); 663 | 664 | maskSprite: Sprite; 665 | maskMatrix: Matrix; 666 | 667 | applyFilter(renderer: WebGLRenderbuffer, input: RenderTarget, output: RenderTarget): void; 668 | map: Texture; 669 | offset: Point; 670 | 671 | } 672 | export class BlendModeManager extends WebGLManager { 673 | 674 | constructor(renderer: WebGLRenderer); 675 | 676 | setBlendMode(blendMode: number): boolean; 677 | 678 | } 679 | 680 | export class FilterManager extends WebGLManager { 681 | 682 | constructor(renderer: WebGLRenderer); 683 | 684 | filterStack: any[]; 685 | renderer: WebGLRenderer; 686 | texturePool: any[]; 687 | 688 | onContextChange: () => void; 689 | setFilterStack(filterStack: any[]): void; 690 | pushFilter(target: RenderTarget, filters: any[]): void; 691 | popFilter(): AbstractFilter; 692 | getRenderTarget(clear?: boolean): RenderTarget; 693 | protected returnRenderTarget(renderTarget: RenderTarget): void; 694 | applyFilter(shader: Shader | AbstractFilter, inputTarget: RenderTarget, outputTarget: RenderTarget, clear?: boolean): void; 695 | calculateMappedMatrix(filterArea: Rectangle, sprite: Sprite, outputMatrix?: Matrix): Matrix; 696 | capFilterArea(filterArea: Rectangle): void; 697 | resize(width: number, height: number): void; 698 | destroy(): void; 699 | 700 | } 701 | 702 | export class MaskManager extends WebGLManager { 703 | 704 | stencilStack: StencilMaskStack; 705 | reverse: boolean; 706 | count: number; 707 | alphaMaskPool: any[]; 708 | 709 | pushMask(target: RenderTarget, maskData: any): void; 710 | popMask(target: RenderTarget, maskData: any): void; 711 | pushSpriteMask(target: RenderTarget, maskData: any): void; 712 | popSpriteMask(): void; 713 | pushStencilMask(target: RenderTarget, maskData: any): void; 714 | popStencilMask(target: RenderTarget, maskData: any): void; 715 | 716 | } 717 | export class ShaderManager extends WebGLManager { 718 | 719 | protected _currentId: number; 720 | protected currentShader: Shader; 721 | 722 | constructor(renderer: WebGLRenderer); 723 | 724 | maxAttibs: number; 725 | attribState: any[]; 726 | tempAttribState: any[]; 727 | stack: any[]; 728 | 729 | setAttribs(attribs: any[]): void; 730 | setShader(shader: Shader): boolean; 731 | destroy(): void; 732 | 733 | } 734 | export class StencilManager extends WebGLManager { 735 | 736 | constructor(renderer: WebGLRenderer); 737 | 738 | setMaskStack(stencilMaskStack: StencilMaskStack): void; 739 | pushStencil(graphics: Graphics, webGLData: WebGLGraphicsData): void; 740 | bindGraphics(graphics: Graphics, webGLData: WebGLGraphicsData): void; 741 | popStencil(graphics: Graphics, webGLData: WebGLGraphicsData): void; 742 | destroy(): void; 743 | pushMask(maskData: any[]): void; 744 | popMask(maskData: any[]): void; 745 | 746 | } 747 | export class WebGLManager { 748 | 749 | protected onContextChange: () => void; 750 | 751 | constructor(renderer: WebGLRenderer); 752 | 753 | renderer: WebGLRenderer; 754 | 755 | destroy(): void; 756 | 757 | } 758 | export class Shader { 759 | 760 | protected attributes: any; 761 | protected textureCount: number; 762 | protected uniforms: any; 763 | 764 | protected _glCompile(type: any, src: any): Shader; 765 | 766 | constructor(shaderManager: ShaderManager, vertexSrc: string, fragmentSrc: string, uniforms: any, attributes: any); 767 | 768 | uuid: number; 769 | gl: WebGLRenderingContext; 770 | shaderManager: ShaderManager; 771 | program: WebGLProgram; 772 | vertexSrc: string; 773 | fragmentSrc: string; 774 | 775 | init(): void; 776 | cacheUniformLocations(keys: string[]): void; 777 | cacheAttributeLocations(keys: string[]): void; 778 | compile(): WebGLProgram; 779 | syncUniform(uniform: any): void; 780 | syncUniforms(): void; 781 | initSampler2D(uniform: any): void; 782 | destroy(): void; 783 | 784 | } 785 | export class ComplexPrimitiveShader extends Shader { 786 | 787 | constructor(shaderManager: ShaderManager); 788 | 789 | } 790 | export class PrimitiveShader extends Shader { 791 | 792 | constructor(shaderManager: ShaderManager); 793 | 794 | } 795 | export class TextureShader extends Shader { 796 | 797 | constructor(shaderManager: ShaderManager, vertexSrc?: string, fragmentSrc?: string, customUniforms?: any, customAttributes?: any); 798 | 799 | } 800 | export interface StencilMaskStack { 801 | 802 | stencilStack: any[]; 803 | reverse: boolean; 804 | count: number; 805 | 806 | } 807 | export class ObjectRenderer extends WebGLManager { 808 | 809 | start(): void; 810 | stop(): void; 811 | flush(): void; 812 | render(object?: any): void; 813 | 814 | } 815 | export class RenderTarget { 816 | 817 | constructor(gl: WebGLRenderingContext, width: number, height: number, scaleMode: number, resolution: number, root: boolean); 818 | 819 | gl: WebGLRenderingContext; 820 | frameBuffer: WebGLFramebuffer; 821 | texture: Texture; 822 | size: Rectangle; 823 | resolution: number; 824 | projectionMatrix: Matrix; 825 | transform: Matrix; 826 | frame: Rectangle; 827 | stencilBuffer: WebGLRenderbuffer; 828 | stencilMaskStack: StencilMaskStack; 829 | filterStack: any[]; 830 | scaleMode: number; 831 | root: boolean; 832 | 833 | clear(bind?: boolean): void; 834 | attachStencilBuffer(): void; 835 | activate(): void; 836 | calculateProjection(protectionFrame: Matrix): void; 837 | resize(width: number, height: number): void; 838 | destroy(): void; 839 | 840 | } 841 | export interface Quad { 842 | 843 | gl: WebGLRenderingContext; 844 | vertices: number[]; 845 | uvs: number[]; 846 | colors: number[]; 847 | indices: number[]; 848 | vertexBuffer: WebGLBuffer; 849 | indexBuffer: WebGLBuffer; 850 | 851 | map(rect: Rectangle, rect2: Rectangle): void; 852 | upload(): void; 853 | destroy(): void; 854 | 855 | } 856 | 857 | //sprites 858 | 859 | export class Sprite extends Container { 860 | 861 | static fromFrame(frameId: string): Sprite; 862 | static fromImage(imageId: string, crossorigin?: boolean, scaleMode?: number): Sprite; 863 | 864 | protected _texture: Texture; 865 | protected _width: number; 866 | protected _height: number; 867 | protected cachedTint: number; 868 | 869 | protected _onTextureUpdate(): void; 870 | 871 | constructor(texture?: Texture); 872 | 873 | anchor: Point; 874 | tint: number; 875 | blendMode: number; 876 | shader: Shader | AbstractFilter; 877 | texture: Texture; 878 | 879 | width: number; 880 | height: number; 881 | 882 | getBounds(matrix?: Matrix): Rectangle; 883 | getLocalBounds(): Rectangle; 884 | containsPoint(point: Point): boolean; 885 | destroy(destroyTexture?: boolean, destroyBaseTexture?: boolean): void; 886 | 887 | } 888 | export class SpriteRenderer extends ObjectRenderer { 889 | 890 | protected renderBatch(texture: Texture, size: number, startIndex: number): void; 891 | 892 | vertSize: number; 893 | vertByteSize: number; 894 | size: number; 895 | vertices: number[]; 896 | positions: number[]; 897 | colors: number[]; 898 | indices: number[]; 899 | currentBatchSize: number; 900 | sprites: Sprite[]; 901 | shader: Shader | AbstractFilter; 902 | 903 | render(sprite: Sprite): void; 904 | flush(): void; 905 | start(): void; 906 | destroy(): void; 907 | 908 | } 909 | 910 | //text 911 | 912 | export interface TextStyle { 913 | 914 | font?: string; 915 | fill?: string | number; 916 | align?: string; 917 | stroke?: string | number; 918 | strokeThickness?: number; 919 | wordWrap?: boolean; 920 | wordWrapWidth?: number; 921 | lineHeight?: number; 922 | dropShadow?: boolean; 923 | dropShadowColor?: string | number; 924 | dropShadowAngle?: number; 925 | dropShadowDistance?: number; 926 | padding?: number; 927 | textBaseline?: string; 928 | lineJoin?: string; 929 | miterLimit?: number; 930 | 931 | } 932 | export class Text extends Sprite { 933 | 934 | static fontPropertiesCache: any; 935 | static fontPropertiesCanvas: HTMLCanvasElement; 936 | static fontPropertiesContext: CanvasRenderingContext2D; 937 | 938 | protected _text: string; 939 | protected _style: TextStyle; 940 | 941 | protected updateText(): void; 942 | protected updateTexture(): void; 943 | protected determineFontProperties(fontStyle: TextStyle): TextStyle; 944 | protected wordWrap(text: string): boolean; 945 | 946 | constructor(text?: string, style?: TextStyle, resolution?: number); 947 | 948 | canvas: HTMLCanvasElement; 949 | context: CanvasRenderingContext2D; 950 | dirty: boolean; 951 | resolution: number; 952 | text: string; 953 | style: TextStyle; 954 | 955 | width: number; 956 | height: number; 957 | 958 | } 959 | 960 | //textures 961 | 962 | export class BaseTexture extends EventEmitter { 963 | 964 | static fromImage(imageUrl: string, crossorigin?: boolean, scaleMode?: number): BaseTexture; 965 | static fromCanvas(canvas: HTMLCanvasElement, scaleMode?: number): BaseTexture; 966 | 967 | protected _glTextures: any; 968 | 969 | protected _sourceLoaded(): void; 970 | 971 | constructor(source: HTMLImageElement | HTMLCanvasElement, scaleMode?: number, resolution?: number); 972 | 973 | uuid: number; 974 | resolution: number; 975 | width: number; 976 | height: number; 977 | realWidth: number; 978 | realHeight: number; 979 | scaleMode: number; 980 | hasLoaded: boolean; 981 | isLoading: boolean; 982 | source: HTMLImageElement | HTMLCanvasElement | HTMLVideoElement; 983 | premultipliedAlpha: boolean; 984 | imageUrl: string; 985 | isPowerOfTwo: boolean; 986 | mipmap: boolean; 987 | 988 | update(): void; 989 | loadSource(source: HTMLImageElement | HTMLCanvasElement): void; 990 | destroy(): void; 991 | dispose(): void; 992 | updateSourceImage(newSrc: string): void; 993 | 994 | on(event: 'dispose', fn: (baseTexture: BaseTexture) => void, context?: any): EventEmitter; 995 | on(event: 'error', fn: (baseTexture: BaseTexture) => void, context?: any): EventEmitter; 996 | on(event: 'loaded', fn: (baseTexture: BaseTexture) => void, context?: any): EventEmitter; 997 | on(event: 'update', fn: (baseTexture: BaseTexture) => void, context?: any): EventEmitter; 998 | on(event: string, fn: Function, context?: any): EventEmitter; 999 | 1000 | once(event: 'dispose', fn: (baseTexture: BaseTexture) => void, context?: any): EventEmitter; 1001 | once(event: 'error', fn: (baseTexture: BaseTexture) => void, context?: any): EventEmitter; 1002 | once(event: 'loaded', fn: (baseTexture: BaseTexture) => void, context?: any): EventEmitter; 1003 | once(event: 'update', fn: (baseTexture: BaseTexture) => void, context?: any): EventEmitter; 1004 | once(event: string, fn: Function, context?: any): EventEmitter; 1005 | 1006 | } 1007 | export class RenderTexture extends Texture { 1008 | 1009 | protected renderWebGL(displayObject: DisplayObject, matrix?: Matrix, clear?: boolean, updateTransform?: boolean): void; 1010 | protected renderCanvas(displayObject: DisplayObject, matrix?: Matrix, clear?: boolean, updateTransform?: boolean): void; 1011 | 1012 | constructor(renderer: CanvasRenderer | WebGLRenderer, width?: number, height?: number, scaleMode?: number, resolution?: number); 1013 | 1014 | width: number; 1015 | height: number; 1016 | resolution: number; 1017 | renderer: CanvasRenderer | WebGLRenderer; 1018 | valid: boolean; 1019 | 1020 | render(displayObject: DisplayObject, matrix?: Matrix, clear?: boolean, updateTransform?: boolean): void; 1021 | resize(width: number, height: number, updateBase?: boolean): void; 1022 | clear(): void; 1023 | destroy(): void; 1024 | getImage(): HTMLImageElement; 1025 | getPixels(): number[]; 1026 | getPixel(x: number, y: number): number[]; 1027 | getBase64(): string; 1028 | getCanvas(): HTMLCanvasElement; 1029 | 1030 | } 1031 | export class Texture extends BaseTexture { 1032 | 1033 | static fromImage(imageUrl: string, crossOrigin?: boolean, scaleMode?: number): Texture; 1034 | static fromFrame(frameId: string): Texture; 1035 | static fromCanvas(canvas: HTMLCanvasElement, scaleMode?: number): Texture; 1036 | static fromVideo(video: HTMLVideoElement | string, scaleMode?: number): Texture; 1037 | static fromVideoUrl(videoUrl: string, scaleMode?: number): Texture; 1038 | static addTextureToCache(texture: Texture, id: string): void; 1039 | static removeTextureFromCache(id: string): Texture; 1040 | static EMPTY: Texture; 1041 | 1042 | protected _frame: Rectangle; 1043 | protected _uvs: TextureUvs; 1044 | 1045 | protected onBaseTextureUpdated(baseTexture: BaseTexture): void; 1046 | protected onBaseTextureLoaded(baseTexture: BaseTexture): void; 1047 | protected _updateUvs(): void; 1048 | 1049 | constructor(baseTexture: BaseTexture, frame?: Rectangle, crop?: Rectangle, trim?: Rectangle, rotate?: boolean); 1050 | 1051 | noFrame: boolean; 1052 | baseTexture: BaseTexture; 1053 | trim: Rectangle; 1054 | valid: boolean; 1055 | requiresUpdate: boolean; 1056 | width: number; 1057 | height: number; 1058 | crop: Rectangle; 1059 | rotate: boolean; 1060 | 1061 | frame: Rectangle; 1062 | 1063 | update(): void; 1064 | destroy(destroyBase?: boolean): void; 1065 | clone(): Texture; 1066 | 1067 | } 1068 | export class TextureUvs { 1069 | 1070 | x0: number; 1071 | y0: number; 1072 | x1: number; 1073 | y1: number; 1074 | x2: number; 1075 | y2: number; 1076 | x3: number; 1077 | y3: number; 1078 | 1079 | set(frame: Rectangle, baseFrame: Rectangle, rotate: boolean): void; 1080 | 1081 | } 1082 | export class VideoBaseTexture extends BaseTexture { 1083 | 1084 | static fromVideo(video: HTMLVideoElement, scaleMode?: number): VideoBaseTexture; 1085 | static fromUrl(videoSrc: string | any | string[] | any[]): VideoBaseTexture; 1086 | 1087 | protected _loaded: boolean; 1088 | protected _onUpdate(): void; 1089 | protected _onPlayStart(): void; 1090 | protected _onPlayStop(): void; 1091 | protected _onCanPlay(): void; 1092 | 1093 | constructor(source: HTMLVideoElement, scaleMode?: number); 1094 | 1095 | autoUpdate: boolean; 1096 | 1097 | destroy(): void; 1098 | 1099 | } 1100 | 1101 | //utils 1102 | 1103 | export class utils { 1104 | 1105 | static uuid(): number; 1106 | static hex2rgb(hex: number, out?: number[]): number[]; 1107 | static hex2String(hex: number): string; 1108 | static rgb2hex(rgb: Number[]): number; 1109 | static canUseNewCanvasBlendModel(): boolean; 1110 | static getNextPowerOfTwo(number: number): number; 1111 | static isPowerOfTwo(width: number, height: number): boolean; 1112 | static getResolutionOfUrl(url: string): number; 1113 | static sayHello(type: string): void; 1114 | static isWebGLSupported(): boolean; 1115 | static sign(n: number): number; 1116 | static TextureCache: any; 1117 | static BaseTextureCache: any; 1118 | 1119 | } 1120 | 1121 | ////////////////////////////////////////////////////////////////////////////// 1122 | ////////////////////////////EXTRAS//////////////////////////////////////////// 1123 | ////////////////////////////////////////////////////////////////////////////// 1124 | 1125 | export module extras { 1126 | 1127 | export interface BitmapTextStyle { 1128 | 1129 | font?: string | { 1130 | 1131 | name?: string; 1132 | size?: number; 1133 | 1134 | }; 1135 | align?: string; 1136 | tint?: number; 1137 | 1138 | } 1139 | export class BitmapText extends Container { 1140 | 1141 | static fonts: any; 1142 | 1143 | protected _glyphs: Sprite[]; 1144 | protected _font: string | { 1145 | tint: number; 1146 | align: string; 1147 | name: string; 1148 | size: number; 1149 | }; 1150 | protected _text: string; 1151 | 1152 | protected updateText(): void; 1153 | 1154 | constructor(text: string, style?: BitmapTextStyle); 1155 | 1156 | textWidth: number; 1157 | textHeight: number; 1158 | maxWidth: number; 1159 | maxLineHeight: number; 1160 | dirty: boolean; 1161 | 1162 | tint: number; 1163 | align: string; 1164 | font: string | { 1165 | tint: number; 1166 | align: string; 1167 | name: string; 1168 | size: number; 1169 | }; 1170 | text: string; 1171 | 1172 | } 1173 | export class MovieClip extends Sprite { 1174 | 1175 | static fromFrames(frame: string[]): MovieClip; 1176 | static fromImages(images: string[]): MovieClip; 1177 | 1178 | protected _textures: Texture[]; 1179 | protected _durations: number[]; 1180 | protected _currentTime: number; 1181 | 1182 | protected update(deltaTime: number): void; 1183 | 1184 | constructor(textures: Texture[]); 1185 | 1186 | animationSpeed: number; 1187 | loop: boolean; 1188 | onComplete: () => void; 1189 | currentFrame: number; 1190 | playing: boolean; 1191 | 1192 | totalFrames: number; 1193 | textures: Texture[]; 1194 | 1195 | stop(): void; 1196 | play(): void; 1197 | gotoAndStop(frameName: number): void; 1198 | gotoAndPlay(frameName: number): void; 1199 | destroy(): void; 1200 | 1201 | } 1202 | export class TilingSprite extends Sprite { 1203 | 1204 | //This is really unclean but is the only way :( 1205 | //See http://stackoverflow.com/questions/29593905/typescript-declaration-extending-class-with-static-method/29595798#29595798 1206 | //Thanks bas! 1207 | static fromFrame(frameId: string): Sprite; 1208 | static fromImage(imageId: string, crossorigin?: boolean, scaleMode?: number): Sprite; 1209 | 1210 | static fromFrame(frameId: string, width?: number, height?: number): TilingSprite; 1211 | static fromImage(imageId: string, width?: number, height?: number, crossorigin?: boolean, scaleMode?: number): TilingSprite; 1212 | 1213 | protected _tileScaleOffset: Point; 1214 | protected _tilingTexture: boolean; 1215 | protected _refreshTexture: boolean; 1216 | protected _uvs: TextureUvs[]; 1217 | 1218 | constructor(texture: Texture, width: number, height: number); 1219 | 1220 | tileScale: Point; 1221 | tilePosition: Point; 1222 | 1223 | width: number; 1224 | height: number; 1225 | originalTexture: Texture; 1226 | 1227 | getBounds(): Rectangle; 1228 | generateTilingTexture(renderer: WebGLRenderer | CanvasRenderer, texture: Texture, forcePowerOfTwo?: boolean): Texture; 1229 | containsPoint(point: Point): boolean; 1230 | destroy(): void; 1231 | 1232 | } 1233 | 1234 | } 1235 | 1236 | ////////////////////////////////////////////////////////////////////////////// 1237 | ///////////////////////////////FILTERS//////////////////////////////////////// 1238 | ////////////////////////////////////////////////////////////////////////////// 1239 | 1240 | namespace filters { 1241 | 1242 | export class AsciiFilter extends AbstractFilter { 1243 | size: number; 1244 | } 1245 | export class BloomFilter extends AbstractFilter { 1246 | 1247 | blur: number; 1248 | blurX: number; 1249 | blurY: number; 1250 | 1251 | } 1252 | export class BlurFilter extends AbstractFilter { 1253 | 1254 | protected blurXFilter: BlurXFilter; 1255 | protected blurYFilter: BlurYFilter; 1256 | 1257 | blur: number; 1258 | passes: number; 1259 | blurX: number; 1260 | blurY: number; 1261 | 1262 | } 1263 | export class BlurXFilter extends AbstractFilter { 1264 | 1265 | passes: number; 1266 | strength: number; 1267 | blur: number; 1268 | 1269 | } 1270 | export class BlurYFilter extends AbstractFilter { 1271 | 1272 | passes: number; 1273 | strength: number; 1274 | blur: number; 1275 | 1276 | } 1277 | export class SmartBlurFilter extends AbstractFilter { 1278 | 1279 | } 1280 | export class ColorMatrixFilter extends AbstractFilter { 1281 | 1282 | protected _loadMatrix(matrix: number[], multiply: boolean): void; 1283 | protected _multiply(out: number[], a: number[], b: number[]): void; 1284 | protected _colorMatrix(matrix: number[]): void; 1285 | 1286 | matrix: number[]; 1287 | 1288 | brightness(b: number, multiply?: boolean): void; 1289 | greyscale(scale: number, multiply?: boolean): void; 1290 | blackAndWhite(multiply?: boolean): void; 1291 | hue(rotation: number, multiply?: boolean): void; 1292 | contrast(amount: number, multiply?: boolean): void; 1293 | saturate(amount: number, multiply?: boolean): void; 1294 | desaturate(multiply?: boolean): void; 1295 | negative(multiply?: boolean): void; 1296 | sepia(multiply?: boolean): void; 1297 | technicolor(multiply?: boolean): void; 1298 | polaroid(multiply?: boolean): void; 1299 | toBGR(multiply?: boolean): void; 1300 | kodachrome(multiply?: boolean): void; 1301 | browni(multiply?: boolean): void; 1302 | vintage(multiply?: boolean): void; 1303 | colorTone(desaturation: number, toned: number, lightColor: string, darkColor: string, multiply?: boolean): void; 1304 | night(intensity: number, multiply?: boolean): void; 1305 | predator(amount: number, multiply?: boolean): void; 1306 | lsd(multiply?: boolean): void; 1307 | reset(): void; 1308 | 1309 | } 1310 | export class ColorStepFilter extends AbstractFilter { 1311 | 1312 | step: number; 1313 | 1314 | } 1315 | export class ConvolutionFilter extends AbstractFilter { 1316 | 1317 | constructor(matrix: number[], width: number, height: number); 1318 | 1319 | matrix: number[]; 1320 | width: number; 1321 | height: number; 1322 | 1323 | } 1324 | export class CrossHatchFilter extends AbstractFilter { 1325 | 1326 | } 1327 | export class DisplacementFilter extends AbstractFilter { 1328 | 1329 | constructor(sprite: Sprite, scale?: number); 1330 | 1331 | map: Texture; 1332 | 1333 | scale: Point; 1334 | 1335 | } 1336 | export class DotScreenFilter extends AbstractFilter { 1337 | 1338 | scale: number; 1339 | angle: number; 1340 | 1341 | } 1342 | export class BlurYTintFilter extends AbstractFilter { 1343 | 1344 | blur: number; 1345 | 1346 | } 1347 | export class DropShadowFilter extends AbstractFilter { 1348 | 1349 | blur: number; 1350 | blurX: number; 1351 | blurY: number; 1352 | color: number; 1353 | alpha: number; 1354 | distance: number; 1355 | angle: number; 1356 | 1357 | } 1358 | export class GrayFilter extends AbstractFilter { 1359 | 1360 | gray: number; 1361 | 1362 | } 1363 | export class InvertFilter extends AbstractFilter { 1364 | 1365 | invert: number; 1366 | 1367 | } 1368 | export class NoiseFilter extends AbstractFilter { 1369 | 1370 | noise: number; 1371 | 1372 | } 1373 | export class PixelateFilter extends AbstractFilter { 1374 | 1375 | size: Point; 1376 | 1377 | } 1378 | export class RGBSplitFilter extends AbstractFilter { 1379 | 1380 | red: number; 1381 | green: number; 1382 | blue: number; 1383 | 1384 | } 1385 | export class SepiaFilter extends AbstractFilter { 1386 | 1387 | sepia: number; 1388 | 1389 | } 1390 | export class ShockwaveFilter extends AbstractFilter { 1391 | 1392 | center: number[]; 1393 | params: any; 1394 | time: number; 1395 | 1396 | } 1397 | export class TiltShiftAxisFilter extends AbstractFilter { 1398 | 1399 | blur: number; 1400 | gradientBlur: number; 1401 | start: number; 1402 | end: number; 1403 | 1404 | updateDelta(): void; 1405 | 1406 | } 1407 | export class TiltShiftFilter extends AbstractFilter { 1408 | 1409 | blur: number; 1410 | gradientBlur: number; 1411 | start: number; 1412 | end: number; 1413 | 1414 | } 1415 | export class TiltShiftXFilter extends AbstractFilter { 1416 | 1417 | updateDelta(): void; 1418 | 1419 | } 1420 | export class TiltShiftYFilter extends AbstractFilter { 1421 | 1422 | updateDelta(): void; 1423 | 1424 | } 1425 | export class TwistFilter extends AbstractFilter { 1426 | 1427 | offset: Point; 1428 | radius: number; 1429 | angle: number; 1430 | 1431 | } 1432 | export class FXAAFilter extends AbstractFilter { 1433 | 1434 | applyFilter(renderer: WebGLRenderer, input: RenderTarget, output: RenderTarget): void; 1435 | 1436 | } 1437 | } 1438 | 1439 | ////////////////////////////////////////////////////////////////////////////// 1440 | ////////////////////////////INTERACTION/////////////////////////////////////// 1441 | ////////////////////////////////////////////////////////////////////////////// 1442 | 1443 | export module interaction { 1444 | 1445 | export interface InteractionEvent { 1446 | 1447 | stopped: boolean; 1448 | target: any; 1449 | type: string; 1450 | data: InteractionData; 1451 | stopPropagation(): void; 1452 | 1453 | } 1454 | 1455 | export class InteractionData { 1456 | 1457 | global: Point; 1458 | target: DisplayObject; 1459 | originalEvent: Event; 1460 | 1461 | getLocalPosition(displayObject: DisplayObject, point?: Point, globalPos?: Point): Point; 1462 | 1463 | } 1464 | 1465 | export class InteractionManager { 1466 | 1467 | protected interactionDOMElement: HTMLElement; 1468 | protected eventsAdded: boolean; 1469 | protected _tempPoint: Point; 1470 | 1471 | protected setTargetElement(element: HTMLElement, resolution: number): void; 1472 | protected addEvents(): void; 1473 | protected removeEvents(): void; 1474 | protected dispatchEvent(displayObject: DisplayObject, eventString: string, eventData: any): void; 1475 | protected onMouseDown: (event: Event) => void; 1476 | protected processMouseDown: (displayObject: DisplayObject, hit: boolean) => void; 1477 | protected onMouseUp: (event: Event) => void; 1478 | protected processMouseUp: (displayObject: DisplayObject, hit: boolean) => void; 1479 | protected onMouseMove: (event: Event) => void; 1480 | protected processMouseMove: (displayObject: DisplayObject, hit: boolean) => void; 1481 | protected onMouseOut: (event: Event) => void; 1482 | protected processMouseOverOut: (displayObject: DisplayObject, hit: boolean) => void; 1483 | protected onTouchStart: (event: Event) => void; 1484 | protected processTouchStart: (DisplayObject: DisplayObject, hit: boolean) => void; 1485 | protected onTouchEnd: (event: Event) => void; 1486 | protected processTouchEnd: (displayObject: DisplayObject, hit: boolean) => void; 1487 | protected onTouchMove: (event: Event) => void; 1488 | protected processTouchMove: (displayObject: DisplayObject, hit: boolean) => void; 1489 | protected getTouchData(touchEvent: InteractionData): InteractionData; 1490 | protected returnTouchData(touchData: InteractionData): void; 1491 | 1492 | constructor(renderer: CanvasRenderer | WebGLRenderer, options?: { autoPreventDefault?: boolean; interactionFrequence?: number; }); 1493 | 1494 | renderer: CanvasRenderer | WebGLRenderer; 1495 | autoPreventDefault: boolean; 1496 | interactionFrequency: number; 1497 | mouse: InteractionData; 1498 | eventData: { 1499 | stopped: boolean; 1500 | target: any; 1501 | type: any; 1502 | data: InteractionData; 1503 | }; 1504 | interactiveDataPool: InteractionData[]; 1505 | last: number; 1506 | currentCursorStyle: string; 1507 | resolution: number; 1508 | update(deltaTime: number): void; 1509 | 1510 | mapPositionToPoint(point: Point, x: number, y: number): void; 1511 | processInteractive(point: Point, displayObject: DisplayObject, func: (displayObject: DisplayObject, hit: boolean) => void, hitTest: boolean, interactive: boolean): boolean; 1512 | destroy(): void; 1513 | 1514 | } 1515 | 1516 | export interface InteractiveTarget { 1517 | 1518 | interactive: boolean; 1519 | buttonMode: boolean; 1520 | interactiveChildren: boolean; 1521 | defaultCursor: string; 1522 | hitArea: HitArea; 1523 | 1524 | } 1525 | 1526 | } 1527 | 1528 | ////////////////////////////////////////////////////////////////////////////// 1529 | ///////////////////////////////LOADER///////////////////////////////////////// 1530 | ////////////////////////////////////////////////////////////////////////////// 1531 | //https://github.com/englercj/resource-loader/blob/master/src/Loader.js 1532 | 1533 | export module loaders { 1534 | export interface LoaderOptions { 1535 | 1536 | crossOrigin?: boolean; 1537 | loadType?: number; 1538 | xhrType?: string; 1539 | 1540 | } 1541 | export interface ResourceDictionary { 1542 | 1543 | [index: string]: PIXI.loaders.Resource; 1544 | } 1545 | export class Loader extends EventEmitter { 1546 | 1547 | constructor(baseUrl?: string, concurrency?: number); 1548 | 1549 | baseUrl: string; 1550 | progress: number; 1551 | loading: boolean; 1552 | resources: ResourceDictionary; 1553 | 1554 | add(name: string, url: string, options?: LoaderOptions, cb?: () => void): Loader; 1555 | add(url: string, options?: LoaderOptions, cb?: () => void): Loader; 1556 | //todo I am not sure of object literal notional (or its options) so just allowing any but would love to improve this 1557 | add(obj: any, options?: LoaderOptions, cb?: () => void): Loader; 1558 | 1559 | on(event: 'complete', fn: (loader: loaders.Loader, object: any) => void, context?: any): EventEmitter; 1560 | on(event: 'error', fn: (error: Error, loader: loaders.Loader, resource: Resource) => void, context?: any): EventEmitter; 1561 | on(event: 'load', fn: (loader: loaders.Loader, resource: Resource) => void, context?: any): EventEmitter; 1562 | on(event: 'progress', fn: (loader: loaders.Loader, resource: Resource) => void, context?: any): EventEmitter; 1563 | on(event: 'start', fn: (loader: loaders.Loader) => void, context?: any): EventEmitter; 1564 | on(event: string, fn: Function, context?: any): EventEmitter; 1565 | 1566 | once(event: 'complete', fn: (loader: loaders.Loader, object: any) => void, context?: any): EventEmitter; 1567 | once(event: 'error', fn: (error: Error, loader: loaders.Loader, resource: Resource) => void, context?: any): EventEmitter; 1568 | once(event: 'load', fn: (loader: loaders.Loader, resource: Resource) => void, context?: any): EventEmitter; 1569 | once(event: 'progress', fn: (loader: loaders.Loader, resource: Resource) => void, context?: any): EventEmitter; 1570 | once(event: 'start', fn: (loader: loaders.Loader) => void, context?: any): EventEmitter; 1571 | once(event: string, fn: Function, context?: any): EventEmitter; 1572 | 1573 | before(fn: Function): Loader; 1574 | pre(fn: Function): Loader; 1575 | 1576 | after(fn: Function): Loader; 1577 | use(fn: Function): Loader; 1578 | 1579 | reset(): void; 1580 | 1581 | load(cb?: (loader: loaders.Loader, object: any) => void): Loader; 1582 | 1583 | } 1584 | export class Resource extends EventEmitter { 1585 | 1586 | static LOAD_TYPE: { 1587 | XHR: number; 1588 | IMAGE: number; 1589 | AUDIO: number; 1590 | VIDEO: number; 1591 | }; 1592 | 1593 | static XHR_READ_STATE: { 1594 | UNSENT: number; 1595 | OPENED: number; 1596 | HEADERS_RECIEVED: number; 1597 | LOADING: number; 1598 | DONE: number; 1599 | }; 1600 | 1601 | static XHR_RESPONSE_TYPE: { 1602 | DEFAULT: number; 1603 | BUFFER: number; 1604 | BLOB: number; 1605 | DOCUMENT: number; 1606 | JSON: number; 1607 | TEXT: number; 1608 | }; 1609 | 1610 | constructor(name?: string, url?: string | string[], options?: LoaderOptions); 1611 | 1612 | name: string; 1613 | texture: Texture; 1614 | textures: Texture[]; 1615 | url: string; 1616 | data: any; 1617 | crossOrigin: string; 1618 | loadType: number; 1619 | xhrType: string; 1620 | error: Error; 1621 | xhr: XMLHttpRequest; 1622 | 1623 | complete(): void; 1624 | load(cb?: () => void): void; 1625 | 1626 | } 1627 | } 1628 | 1629 | ////////////////////////////////////////////////////////////////////////////// 1630 | ///////////////////////////////MESH/////////////////////////////////////////// 1631 | ////////////////////////////////////////////////////////////////////////////// 1632 | 1633 | export module mesh { 1634 | 1635 | export class Mesh extends Container { 1636 | 1637 | static DRAW_MODES: { 1638 | TRIANGLE_MESH: number; 1639 | TRIANGLES: number; 1640 | }; 1641 | 1642 | constructor(texture: Texture, vertices?: number[], uvs?: number[], indices?: number[], drawMode?: number); 1643 | 1644 | texture: Texture; 1645 | uvs: number[]; 1646 | vertices: number[]; 1647 | indices: number[]; 1648 | dirty: boolean; 1649 | blendMode: number; 1650 | canvasPadding: number; 1651 | drawMode: number; 1652 | shader: Shader | AbstractFilter; 1653 | 1654 | getBounds(matrix?: Matrix): Rectangle; 1655 | containsPoint(point: Point): boolean; 1656 | 1657 | protected _texture: Texture; 1658 | 1659 | protected _renderCanvasTriangleMesh(context: CanvasRenderingContext2D): void; 1660 | protected _renderCanvasTriangles(context: CanvasRenderingContext2D): void; 1661 | protected _renderCanvasDrawTriangle(context: CanvasRenderingContext2D, vertices: number, uvs: number, index0: number, index1: number, index2: number): void; 1662 | protected renderMeshFlat(Mesh: Mesh): void; 1663 | protected _onTextureUpdate(): void; 1664 | 1665 | } 1666 | export class Rope extends Mesh { 1667 | 1668 | protected _ready: boolean; 1669 | 1670 | protected getTextureUvs(): TextureUvs; 1671 | 1672 | constructor(texture: Texture, points: Point[]); 1673 | 1674 | points: Point[]; 1675 | colors: number[]; 1676 | 1677 | refresh(): void; 1678 | 1679 | } 1680 | export class Plane extends Mesh { 1681 | 1682 | segmentsX: number; 1683 | segmentsY: number; 1684 | 1685 | constructor(texture: Texture, segmentsX?: number, segmentsY?: number); 1686 | 1687 | } 1688 | 1689 | 1690 | export class MeshRenderer extends ObjectRenderer { 1691 | 1692 | protected _initWebGL(mesh: Mesh): void; 1693 | 1694 | indices: number[]; 1695 | 1696 | constructor(renderer: WebGLRenderer); 1697 | 1698 | render(mesh: Mesh): void; 1699 | flush(): void; 1700 | start(): void; 1701 | destroy(): void; 1702 | 1703 | } 1704 | 1705 | export interface MeshShader extends Shader { } 1706 | 1707 | } 1708 | 1709 | namespace ticker { 1710 | 1711 | export var shared: Ticker; 1712 | 1713 | export class Ticker { 1714 | 1715 | protected _tick(time: number): void; 1716 | protected _emitter: EventEmitter; 1717 | protected _requestId: number; 1718 | protected _maxElapsedMS: number; 1719 | 1720 | protected _requestIfNeeded(): void; 1721 | protected _cancelIfNeeded(): void; 1722 | protected _startIfPossible(): void; 1723 | 1724 | autoStart: boolean; 1725 | deltaTime: number; 1726 | elapsedMS: number; 1727 | lastTime: number; 1728 | speed: number; 1729 | started: boolean; 1730 | 1731 | FPS: number; 1732 | minFPS: number; 1733 | 1734 | add(fn: (deltaTime: number) => void, context?: any): Ticker; 1735 | addOnce(fn: (deltaTime: number) => void, context?: any): Ticker; 1736 | remove(fn: (deltaTime: number) => void, context?: any): Ticker; 1737 | start(): void; 1738 | stop(): void; 1739 | update(): void; 1740 | 1741 | } 1742 | 1743 | } 1744 | } 1745 | 1746 | declare module 'pixi.js' { 1747 | export = PIXI; 1748 | } -------------------------------------------------------------------------------- /typings/main/ambient/pixi.js/index.d.ts: -------------------------------------------------------------------------------- 1 | // Generated by typings 2 | // Source: https://raw.githubusercontent.com/DefinitelyTyped/DefinitelyTyped/7de6c3dd94feaeb21f20054b9f30d5dabc5efabd/pixi.js/pixi.js.d.ts 3 | // Type definitions for Pixi.js 3.0.9 dev 4 | // Project: https://github.com/GoodBoyDigital/pixi.js/ 5 | // Definitions by: clark-stevenson 6 | // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped 7 | 8 | declare class PIXI { 9 | 10 | static VERSION: string; 11 | static PI_2: number; 12 | static RAD_TO_DEG: number; 13 | static DEG_TO_RAD: number; 14 | static TARGET_FPMS: number; 15 | static RENDERER_TYPE: { 16 | UNKNOWN: number; 17 | WEBGL: number; 18 | CANVAS: number; 19 | }; 20 | static BLEND_MODES: { 21 | NORMAL: number; 22 | ADD: number; 23 | MULTIPLY: number; 24 | SCREEN: number; 25 | OVERLAY: number; 26 | DARKEN: number; 27 | LIGHTEN: number; 28 | COLOR_DODGE: number; 29 | COLOR_BURN: number; 30 | HARD_LIGHT: number; 31 | SOFT_LIGHT: number; 32 | DIFFERENCE: number; 33 | EXCLUSION: number; 34 | HUE: number; 35 | SATURATION: number; 36 | COLOR: number; 37 | LUMINOSITY: number; 38 | 39 | }; 40 | static DRAW_MODES: { 41 | POINTS: number; 42 | LINES: number; 43 | LINE_LOOP: number; 44 | LINE_STRIP: number; 45 | TRIANGLES: number; 46 | TRIANGLE_STRIP: number; 47 | TRIANGLE_FAN: number; 48 | }; 49 | static SCALE_MODES: { 50 | DEFAULT: number; 51 | LINEAR: number; 52 | NEAREST: number; 53 | }; 54 | static RETINA_PREFIX: string; 55 | static RESOLUTION: number; 56 | static FILTER_RESOLUTION: number; 57 | static DEFAULT_RENDER_OPTIONS: { 58 | view: HTMLCanvasElement; 59 | resolution: number; 60 | antialias: boolean; 61 | forceFXAA: boolean; 62 | autoResize: boolean; 63 | transparent: boolean; 64 | backgroundColor: number; 65 | clearBeforeRender: boolean; 66 | preserveDrawingBuffer: boolean; 67 | roundPixels: boolean; 68 | }; 69 | static SHAPES: { 70 | POLY: number; 71 | RECT: number; 72 | CIRC: number; 73 | ELIP: number; 74 | RREC: number; 75 | }; 76 | static SPRITE_BATCH_SIZE: number; 77 | 78 | } 79 | 80 | declare namespace PIXI { 81 | 82 | export function autoDetectRenderer(width: number, height: number, options?: PIXI.RendererOptions, noWebGL?: boolean): PIXI.WebGLRenderer | PIXI.CanvasRenderer; 83 | export var loader: PIXI.loaders.Loader; 84 | 85 | //https://github.com/primus/eventemitter3 86 | export class EventEmitter { 87 | 88 | listeners(event: string): Function[]; 89 | emit(event: string, ...args: any[]): boolean; 90 | on(event: string, fn: Function, context?: any): EventEmitter; 91 | once(event: string, fn: Function, context?: any): EventEmitter; 92 | removeListener(event: string, fn: Function, context?: any, once?: boolean): EventEmitter; 93 | removeAllListeners(event: string): EventEmitter; 94 | 95 | off(event: string, fn: Function, context?: any, once?: boolean): EventEmitter; 96 | addListener(event: string, fn: Function, context?: any): EventEmitter; 97 | 98 | } 99 | 100 | ////////////////////////////////////////////////////////////////////////////// 101 | ////////////////////////////////CORE////////////////////////////////////////// 102 | ////////////////////////////////////////////////////////////////////////////// 103 | 104 | //display 105 | 106 | export class DisplayObject extends EventEmitter implements interaction.InteractiveTarget { 107 | 108 | //begin extras.cacheAsBitmap see https://github.com/pixijs/pixi-typescript/commit/1207b7f4752d79a088d6a9a465a3ec799906b1db 109 | protected _originalRenderWebGL: WebGLRenderer; 110 | protected _originalRenderCanvas: CanvasRenderer; 111 | protected _originalUpdateTransform: boolean; 112 | protected _originalHitTest: any; 113 | protected _cachedSprite: any; 114 | protected _originalDestroy: any; 115 | 116 | cacheAsBitmap: boolean; 117 | 118 | protected _renderCachedWebGL(renderer: WebGLRenderer): void; 119 | protected _initCachedDisplayObject(renderer: WebGLRenderer): void; 120 | protected _renderCachedCanvas(renderer: CanvasRenderer): void; 121 | protected _initCachedDisplayObjectCanvas(renderer: CanvasRenderer): void; 122 | protected _getCachedBounds(): Rectangle; 123 | protected _destroyCachedDisplayObject(): void; 124 | protected _cacheAsBitmapDestroy(): void; 125 | //end extras.cacheAsBitmap 126 | 127 | protected _sr: number; 128 | protected _cr: number; 129 | protected _bounds: Rectangle; 130 | protected _currentBounds: Rectangle; 131 | protected _mask: Rectangle; 132 | protected _cachedObject: any; 133 | 134 | updateTransform(): void; 135 | 136 | position: Point; 137 | scale: Point; 138 | pivot: Point; 139 | rotation: number; 140 | renderable: boolean; 141 | alpha: number; 142 | visible: boolean; 143 | parent: Container; 144 | worldAlpha: number; 145 | worldTransform: Matrix; 146 | filterArea: Rectangle; 147 | 148 | x: number; 149 | y: number; 150 | worldVisible: boolean; 151 | mask: Graphics | Sprite; 152 | filters: AbstractFilter[]; 153 | name: string; 154 | 155 | getBounds(matrix?: Matrix): Rectangle; 156 | getLocalBounds(): Rectangle; 157 | toGlobal(position: Point): Point; 158 | toLocal(position: Point, from?: DisplayObject): Point; 159 | generateTexture(renderer: CanvasRenderer | WebGLRenderer, scaleMode: number, resolution: number): Texture; 160 | setParent(container: Container): Container; 161 | setTransform(x?: number, y?: number, scaleX?: number, scaleY?: number, rotation?: number, skewX?: number, skewY?: number, pivotX?: number, pivotY?: number): DisplayObject; 162 | destroy(): void; 163 | getChildByName(name: string): DisplayObject; 164 | getGlobalPosition(point: Point): Point; 165 | 166 | interactive: boolean; 167 | buttonMode: boolean; 168 | interactiveChildren: boolean; 169 | defaultCursor: string; 170 | hitArea: HitArea; 171 | 172 | on(event: 'click', fn: (event: interaction.InteractionEvent) => void, context?: any): EventEmitter; 173 | on(event: 'mousedown', fn: (event: interaction.InteractionEvent) => void, context?: any): EventEmitter; 174 | on(event: 'mouseout', fn: (event: interaction.InteractionEvent) => void, context?: any): EventEmitter; 175 | on(event: 'mouseover', fn: (event: interaction.InteractionEvent) => void, context?: any): EventEmitter; 176 | on(event: 'mouseup', fn: (event: interaction.InteractionEvent) => void, context?: any): EventEmitter; 177 | on(event: 'mouseclick', fn: (event: interaction.InteractionEvent) => void, context?: any): EventEmitter; 178 | on(event: 'mouseupoutside', fn: (event: interaction.InteractionEvent) => void, context?: any): EventEmitter; 179 | on(event: 'rightclick', fn: (event: interaction.InteractionEvent) => void, context?: any): EventEmitter; 180 | on(event: 'rightdown', fn: (event: interaction.InteractionEvent) => void, context?: any): EventEmitter; 181 | on(event: 'rightup', fn: (event: interaction.InteractionEvent) => void, context?: any): EventEmitter; 182 | on(event: 'rightupoutside', fn: (event: interaction.InteractionEvent) => void, context?: any): EventEmitter; 183 | on(event: 'tap', fn: (event: interaction.InteractionEvent) => void, context?: any): EventEmitter; 184 | on(event: 'touchend', fn: (event: interaction.InteractionEvent) => void, context?: any): EventEmitter; 185 | on(event: 'touchendoutside', fn: (event: interaction.InteractionEvent) => void, context?: any): EventEmitter; 186 | on(event: 'touchmove', fn: (event: interaction.InteractionEvent) => void, context?: any): EventEmitter; 187 | on(event: 'touchstart', fn: (event: interaction.InteractionEvent) => void, context?: any): EventEmitter; 188 | on(event: string, fn: Function, context?: any): EventEmitter; 189 | 190 | once(event: 'click', fn: (event: interaction.InteractionEvent) => void, context?: any): EventEmitter; 191 | once(event: 'mousedown', fn: (event: interaction.InteractionEvent) => void, context?: any): EventEmitter; 192 | once(event: 'mouseout', fn: (event: interaction.InteractionEvent) => void, context?: any): EventEmitter; 193 | once(event: 'mouseover', fn: (event: interaction.InteractionEvent) => void, context?: any): EventEmitter; 194 | once(event: 'mouseup', fn: (event: interaction.InteractionEvent) => void, context?: any): EventEmitter; 195 | once(event: 'mouseclick', fn: (event: interaction.InteractionEvent) => void, context?: any): EventEmitter; 196 | once(event: 'mouseupoutside', fn: (event: interaction.InteractionEvent) => void, context?: any): EventEmitter; 197 | once(event: 'rightclick', fn: (event: interaction.InteractionEvent) => void, context?: any): EventEmitter; 198 | once(event: 'rightdown', fn: (event: interaction.InteractionEvent) => void, context?: any): EventEmitter; 199 | once(event: 'rightup', fn: (event: interaction.InteractionEvent) => void, context?: any): EventEmitter; 200 | once(event: 'rightupoutside', fn: (event: interaction.InteractionEvent) => void, context?: any): EventEmitter; 201 | once(event: 'tap', fn: (event: interaction.InteractionEvent) => void, context?: any): EventEmitter; 202 | once(event: 'touchend', fn: (event: interaction.InteractionEvent) => void, context?: any): EventEmitter; 203 | once(event: 'touchendoutside', fn: (event: interaction.InteractionEvent) => void, context?: any): EventEmitter; 204 | once(event: 'touchmove', fn: (event: interaction.InteractionEvent) => void, context?: any): EventEmitter; 205 | once(event: 'touchstart', fn: (event: interaction.InteractionEvent) => void, context?: any): EventEmitter; 206 | once(event: string, fn: Function, context?: any): EventEmitter; 207 | 208 | } 209 | 210 | export class Container extends DisplayObject { 211 | 212 | protected _renderWebGL(renderer: WebGLRenderer): void; 213 | protected _renderCanvas(renderer: CanvasRenderer): void; 214 | 215 | protected onChildrenChange: () => void; 216 | 217 | children: DisplayObject[]; 218 | 219 | width: number; 220 | height: number; 221 | 222 | addChild(child: DisplayObject): DisplayObject; 223 | addChildAt(child: DisplayObject, index: number): DisplayObject; 224 | swapChildren(child: DisplayObject, child2: DisplayObject): void; 225 | getChildIndex(child: DisplayObject): number; 226 | setChildIndex(child: DisplayObject, index: number): void; 227 | getChildAt(index: number): DisplayObject; 228 | removeChild(child: DisplayObject): DisplayObject; 229 | removeChildAt(index: number): DisplayObject; 230 | removeChildren(beginIndex?: number, endIndex?: number): DisplayObject[]; 231 | destroy(destroyChildren?: boolean): void; 232 | generateTexture(renderer: PIXI.CanvasRenderer | PIXI.WebGLRenderer, resolution?: number, scaleMode?: number): Texture; 233 | 234 | renderWebGL(renderer: WebGLRenderer): void; 235 | renderCanvas(renderer: CanvasRenderer): void; 236 | 237 | once(event: 'added', fn: (event: interaction.InteractionEvent) => void, context?: any): EventEmitter; 238 | once(event: string, fn: Function, context?: any): EventEmitter; 239 | once(event: 'removed', fn: (event: interaction.InteractionEvent) => void, context?: any): EventEmitter; 240 | once(event: string, fn: Function, context?: any): EventEmitter; 241 | on(event: 'added', fn: (event: interaction.InteractionEvent) => void, context?: any): EventEmitter; 242 | on(event: string, fn: Function, context?: any): EventEmitter; 243 | on(event: 'removed', fn: (event: interaction.InteractionEvent) => void, context?: any): EventEmitter; 244 | on(event: string, fn: Function, context?: any): EventEmitter; 245 | 246 | } 247 | 248 | //graphics 249 | 250 | export class GraphicsData { 251 | 252 | constructor(lineWidth: number, lineColor: number, lineAlpha: number, fillColor: number, fillAlpha: number, fill: boolean, shape: Circle | Rectangle | Ellipse | Polygon); 253 | 254 | lineWidth: number; 255 | lineColor: number; 256 | lineAlpha: number; 257 | fillColor: number; 258 | fillAlpha: number; 259 | fill: boolean; 260 | shape: Circle | Rectangle | Ellipse | Polygon; 261 | type: number; 262 | 263 | clone(): GraphicsData; 264 | 265 | protected _lineTint: number; 266 | protected _fillTint: number; 267 | 268 | } 269 | export class Graphics extends Container { 270 | 271 | protected boundsDirty: boolean; 272 | protected dirty: boolean; 273 | protected glDirty: boolean; 274 | 275 | fillAlpha: number; 276 | lineWidth: number; 277 | lineColor: number; 278 | tint: number; 279 | blendMode: number; 280 | isMask: boolean; 281 | boundsPadding: number; 282 | 283 | clone(): Graphics; 284 | lineStyle(lineWidth?: number, color?: number, alpha?: number): Graphics; 285 | moveTo(x: number, y: number): Graphics; 286 | lineTo(x: number, y: number): Graphics; 287 | quadraticCurveTo(cpX: number, cpY: number, toX: number, toY: number): Graphics; 288 | bezierCurveTo(cpX: number, cpY: number, cpX2: number, cpY2: number, toX: number, toY: number): Graphics; 289 | arcTo(x1: number, y1: number, x2: number, y2: number, radius: number): Graphics; 290 | arc(cx: number, cy: number, radius: number, startAngle: number, endAngle: number, anticlockwise?: boolean): Graphics; 291 | beginFill(color: number, alpha?: number): Graphics; 292 | endFill(): Graphics; 293 | drawRect(x: number, y: number, width: number, height: number): Graphics; 294 | drawRoundedRect(x: number, y: number, width: number, height: number, radius: number): Graphics; 295 | drawCircle(x: number, y: number, radius: number): Graphics; 296 | drawEllipse(x: number, y: number, width: number, height: number): Graphics; 297 | drawPolygon(path: number[] | Point[]): Graphics; 298 | clear(): Graphics; 299 | //todo 300 | generateTexture(renderer: WebGLRenderer | CanvasRenderer, resolution?: number, scaleMode?: number): Texture; 301 | getBounds(matrix?: Matrix): Rectangle; 302 | containsPoint(point: Point): boolean; 303 | updateLocalBounds(): void; 304 | drawShape(shape: Circle | Rectangle | Ellipse | Polygon): GraphicsData; 305 | 306 | } 307 | export interface GraphicsRenderer extends ObjectRenderer { 308 | //yikes todo 309 | } 310 | export interface WebGLGraphicsData { 311 | //yikes todo! 312 | } 313 | 314 | //math 315 | 316 | export class Point { 317 | 318 | x: number; 319 | y: number; 320 | 321 | constructor(x?: number, y?: number); 322 | 323 | clone(): Point; 324 | copy(p: Point): void; 325 | equals(p: Point): boolean; 326 | set(x?: number, y?: number): void; 327 | 328 | } 329 | export class Matrix { 330 | 331 | a: number; 332 | b: number; 333 | c: number; 334 | d: number; 335 | tx: number; 336 | ty: number; 337 | 338 | fromArray(array: number[]): void; 339 | toArray(transpose?: boolean, out?: number[]): number[]; 340 | apply(pos: Point, newPos?: Point): Point; 341 | applyInverse(pos: Point, newPos?: Point): Point; 342 | translate(x: number, y: number): Matrix; 343 | scale(x: number, y: number): Matrix; 344 | rotate(angle: number): Matrix; 345 | append(matrix: Matrix): Matrix; 346 | prepend(matrix: Matrix): Matrix; 347 | invert(): Matrix; 348 | identity(): Matrix; 349 | clone(): Matrix; 350 | copy(matrix: Matrix): Matrix; 351 | set(a: number, b: number, c: number, d: number, tx: number, ty: number): Matrix; 352 | setTransform(a: number, b: number, c: number, d: number, sr: number, cr: number, cy: number, sy: number, nsx: number, cs: number): PIXI.Matrix; 353 | 354 | static IDENTITY: Matrix; 355 | static TEMP_MATRIX: Matrix; 356 | 357 | } 358 | 359 | export interface HitArea { 360 | 361 | contains(x: number, y: number): boolean; 362 | 363 | } 364 | 365 | export class Circle implements HitArea { 366 | 367 | constructor(x?: number, y?: number, radius?: number); 368 | 369 | x: number; 370 | y: number; 371 | radius: number; 372 | type: number; 373 | 374 | clone(): Circle; 375 | contains(x: number, y: number): boolean; 376 | getBounds(): Rectangle; 377 | 378 | } 379 | export class Ellipse implements HitArea { 380 | 381 | constructor(x?: number, y?: number, width?: number, height?: number); 382 | 383 | x: number; 384 | y: number; 385 | width: number; 386 | height: number; 387 | type: number; 388 | 389 | clone(): Ellipse; 390 | contains(x: number, y: number): boolean; 391 | getBounds(): Rectangle; 392 | 393 | } 394 | export class Polygon implements HitArea { 395 | 396 | constructor(points: Point[]); 397 | constructor(points: number[]); 398 | constructor(...points: Point[]); 399 | constructor(...points: number[]); 400 | 401 | closed: boolean; 402 | points: number[]; 403 | type: number; 404 | 405 | clone(): Polygon; 406 | contains(x: number, y: number): boolean; 407 | 408 | 409 | } 410 | export class Rectangle implements HitArea { 411 | 412 | constructor(x?: number, y?: number, width?: number, height?: number); 413 | 414 | x: number; 415 | y: number; 416 | width: number; 417 | height: number; 418 | type: number; 419 | 420 | static EMPTY: Rectangle; 421 | 422 | clone(): Rectangle; 423 | contains(x: number, y: number): boolean; 424 | 425 | } 426 | export class RoundedRectangle implements HitArea { 427 | 428 | constructor(x?: number, y?: number, width?: number, height?: number, radius?: number); 429 | 430 | x: number; 431 | y: number; 432 | width: number; 433 | height: number; 434 | radius: number; 435 | type: number; 436 | 437 | static EMPTY: Rectangle; 438 | 439 | clone(): Rectangle; 440 | contains(x: number, y: number): boolean; 441 | 442 | } 443 | 444 | //particles 445 | 446 | export interface ParticleContainerProperties { 447 | 448 | scale?: boolean; 449 | position?: boolean; 450 | rotation?: boolean; 451 | uvs?: boolean; 452 | alpha?: boolean; 453 | 454 | } 455 | export class ParticleContainer extends Container { 456 | 457 | constructor(size?: number, properties?: ParticleContainerProperties, batchSize?: number); 458 | 459 | protected _maxSize: number; 460 | protected _batchSize: number; 461 | protected _properties: boolean[]; 462 | protected _buffers: WebGLBuffer[]; 463 | protected _bufferToUpdate: number; 464 | 465 | protected onChildrenChange: (smallestChildIndex?: number) => void; 466 | 467 | interactiveChildren: boolean; 468 | blendMode: number; 469 | roundPixels: boolean; 470 | 471 | setProperties(properties: ParticleContainerProperties): void; 472 | 473 | } 474 | export interface ParticleBuffer { 475 | 476 | gl: WebGLRenderingContext; 477 | vertSize: number; 478 | vertByteSize: number; 479 | size: number; 480 | dynamicProperties: any[]; 481 | staticProperties: any[]; 482 | 483 | staticStride: number; 484 | staticBuffer: any; 485 | staticData: any; 486 | dynamicStride: number; 487 | dynamicBuffer: any; 488 | dynamicData: any; 489 | 490 | initBuffers(): void; 491 | bind(): void; 492 | destroy(): void; 493 | 494 | } 495 | export interface ParticleRenderer { 496 | 497 | } 498 | export interface ParticleShader { 499 | 500 | } 501 | 502 | //renderers 503 | 504 | export interface RendererOptions { 505 | 506 | view?: HTMLCanvasElement; 507 | transparent?: boolean; 508 | antialias?: boolean; 509 | resolution?: number; 510 | clearBeforeRendering?: boolean; 511 | preserveDrawingBuffer?: boolean; 512 | forceFXAA?: boolean; 513 | roundPixels?: boolean; 514 | backgroundColor?: number; 515 | 516 | } 517 | export class SystemRenderer extends EventEmitter { 518 | 519 | protected _backgroundColor: number; 520 | protected _backgroundColorRgb: number[]; 521 | protected _backgroundColorString: string; 522 | protected _tempDisplayObjectParent: any; 523 | protected _lastObjectRendered: DisplayObject; 524 | 525 | constructor(system: string, width?: number, height?: number, options?: RendererOptions); 526 | 527 | type: number; 528 | width: number; 529 | height: number; 530 | view: HTMLCanvasElement; 531 | resolution: number; 532 | transparent: boolean; 533 | autoResize: boolean; 534 | blendModes: any; //todo? 535 | preserveDrawingBuffer: boolean; 536 | clearBeforeRender: boolean; 537 | roundPixels: boolean; 538 | backgroundColor: number; 539 | 540 | render(object: DisplayObject): void; 541 | resize(width: number, height: number): void; 542 | destroy(removeView?: boolean): void; 543 | 544 | } 545 | export class CanvasRenderer extends SystemRenderer { 546 | 547 | protected renderDisplayObject(displayObject: DisplayObject, context: CanvasRenderingContext2D): void; 548 | protected _mapBlendModes(): void; 549 | 550 | constructor(width?: number, height?: number, options?: RendererOptions); 551 | 552 | context: CanvasRenderingContext2D; 553 | refresh: boolean; 554 | maskManager: CanvasMaskManager; 555 | roundPixels: boolean; 556 | smoothProperty: string; 557 | 558 | render(object: DisplayObject): void; 559 | resize(w: number, h: number): void; 560 | 561 | } 562 | export class CanvasBuffer { 563 | 564 | protected clear(): void; 565 | 566 | constructor(width: number, height: number); 567 | 568 | canvas: HTMLCanvasElement; 569 | context: CanvasRenderingContext2D; 570 | 571 | width: number; 572 | height: number; 573 | 574 | resize(width: number, height: number): void; 575 | destroy(): void; 576 | 577 | } 578 | export class CanvasGraphics { 579 | 580 | static renderGraphicsMask(graphics: Graphics, context: CanvasRenderingContext2D): void; 581 | static updateGraphicsTint(graphics: Graphics): void; 582 | 583 | static renderGraphics(graphics: Graphics, context: CanvasRenderingContext2D): void; 584 | 585 | } 586 | export class CanvasMaskManager { 587 | 588 | pushMask(maskData: any, renderer: WebGLRenderer | CanvasRenderer): void; 589 | popMask(renderer: WebGLRenderer | CanvasRenderer): void; 590 | destroy(): void; 591 | 592 | } 593 | export class CanvasTinter { 594 | 595 | static getTintedTexture(sprite: DisplayObject, color: number): HTMLCanvasElement; 596 | static tintWithMultiply(texture: Texture, color: number, canvas: HTMLDivElement): void; 597 | static tintWithOverlay(texture: Texture, color: number, canvas: HTMLCanvasElement): void; 598 | static tintWithPerPixel(texture: Texture, color: number, canvas: HTMLCanvasElement): void; 599 | static roundColor(color: number): number; 600 | static cacheStepsPerColorChannel: number; 601 | static convertTintToImage: boolean; 602 | static vanUseMultiply: boolean; 603 | static tintMethod: Function; 604 | 605 | } 606 | export class WebGLRenderer extends SystemRenderer { 607 | 608 | protected _useFXAA: boolean; 609 | protected _FXAAFilter: filters.FXAAFilter; 610 | protected _contextOptions: { 611 | alpha: boolean; 612 | antiAlias: boolean; 613 | premultipliedAlpha: boolean; 614 | stencil: boolean; 615 | preseveDrawingBuffer: boolean; 616 | }; 617 | protected _renderTargetStack: RenderTarget[]; 618 | 619 | protected _initContext(): void; 620 | protected _createContext(): void; 621 | protected handleContextLost: (event: WebGLContextEvent) => void; 622 | protected _mapGlModes(): void; 623 | protected _managedTextures: Texture[]; 624 | 625 | constructor(width?: number, height?: number, options?: RendererOptions); 626 | 627 | drawCount: number; 628 | shaderManager: ShaderManager; 629 | maskManager: MaskManager; 630 | stencilManager: StencilManager; 631 | filterManager: FilterManager; 632 | blendModeManager: BlendModeManager; 633 | currentRenderTarget: RenderTarget; 634 | currentRenderer: ObjectRenderer; 635 | 636 | render(object: DisplayObject): void; 637 | renderDisplayObject(displayObject: DisplayObject, renderTarget: RenderTarget, clear: boolean): void; 638 | setObjectRenderer(objectRenderer: ObjectRenderer): void; 639 | setRenderTarget(renderTarget: RenderTarget): void; 640 | updateTexture(texture: BaseTexture | Texture): BaseTexture | Texture; 641 | destroyTexture(texture: BaseTexture | Texture, _skipRemove?: boolean): void; 642 | 643 | } 644 | export class AbstractFilter { 645 | 646 | protected vertexSrc: string[]; 647 | protected fragmentSrc: string[]; 648 | 649 | constructor(vertexSrc?: string | string[], fragmentSrc?: string | string[], uniforms?: any); 650 | 651 | uniforms: any; 652 | 653 | padding: number; 654 | 655 | getShader(renderer: WebGLRenderer): Shader; 656 | applyFilter(renderer: WebGLRenderer, input: RenderTarget, output: RenderTarget, clear?: boolean): void; 657 | syncUniform(uniform: WebGLUniformLocation): void; 658 | 659 | } 660 | export class SpriteMaskFilter extends AbstractFilter { 661 | 662 | constructor(sprite: Sprite); 663 | 664 | maskSprite: Sprite; 665 | maskMatrix: Matrix; 666 | 667 | applyFilter(renderer: WebGLRenderbuffer, input: RenderTarget, output: RenderTarget): void; 668 | map: Texture; 669 | offset: Point; 670 | 671 | } 672 | export class BlendModeManager extends WebGLManager { 673 | 674 | constructor(renderer: WebGLRenderer); 675 | 676 | setBlendMode(blendMode: number): boolean; 677 | 678 | } 679 | 680 | export class FilterManager extends WebGLManager { 681 | 682 | constructor(renderer: WebGLRenderer); 683 | 684 | filterStack: any[]; 685 | renderer: WebGLRenderer; 686 | texturePool: any[]; 687 | 688 | onContextChange: () => void; 689 | setFilterStack(filterStack: any[]): void; 690 | pushFilter(target: RenderTarget, filters: any[]): void; 691 | popFilter(): AbstractFilter; 692 | getRenderTarget(clear?: boolean): RenderTarget; 693 | protected returnRenderTarget(renderTarget: RenderTarget): void; 694 | applyFilter(shader: Shader | AbstractFilter, inputTarget: RenderTarget, outputTarget: RenderTarget, clear?: boolean): void; 695 | calculateMappedMatrix(filterArea: Rectangle, sprite: Sprite, outputMatrix?: Matrix): Matrix; 696 | capFilterArea(filterArea: Rectangle): void; 697 | resize(width: number, height: number): void; 698 | destroy(): void; 699 | 700 | } 701 | 702 | export class MaskManager extends WebGLManager { 703 | 704 | stencilStack: StencilMaskStack; 705 | reverse: boolean; 706 | count: number; 707 | alphaMaskPool: any[]; 708 | 709 | pushMask(target: RenderTarget, maskData: any): void; 710 | popMask(target: RenderTarget, maskData: any): void; 711 | pushSpriteMask(target: RenderTarget, maskData: any): void; 712 | popSpriteMask(): void; 713 | pushStencilMask(target: RenderTarget, maskData: any): void; 714 | popStencilMask(target: RenderTarget, maskData: any): void; 715 | 716 | } 717 | export class ShaderManager extends WebGLManager { 718 | 719 | protected _currentId: number; 720 | protected currentShader: Shader; 721 | 722 | constructor(renderer: WebGLRenderer); 723 | 724 | maxAttibs: number; 725 | attribState: any[]; 726 | tempAttribState: any[]; 727 | stack: any[]; 728 | 729 | setAttribs(attribs: any[]): void; 730 | setShader(shader: Shader): boolean; 731 | destroy(): void; 732 | 733 | } 734 | export class StencilManager extends WebGLManager { 735 | 736 | constructor(renderer: WebGLRenderer); 737 | 738 | setMaskStack(stencilMaskStack: StencilMaskStack): void; 739 | pushStencil(graphics: Graphics, webGLData: WebGLGraphicsData): void; 740 | bindGraphics(graphics: Graphics, webGLData: WebGLGraphicsData): void; 741 | popStencil(graphics: Graphics, webGLData: WebGLGraphicsData): void; 742 | destroy(): void; 743 | pushMask(maskData: any[]): void; 744 | popMask(maskData: any[]): void; 745 | 746 | } 747 | export class WebGLManager { 748 | 749 | protected onContextChange: () => void; 750 | 751 | constructor(renderer: WebGLRenderer); 752 | 753 | renderer: WebGLRenderer; 754 | 755 | destroy(): void; 756 | 757 | } 758 | export class Shader { 759 | 760 | protected attributes: any; 761 | protected textureCount: number; 762 | protected uniforms: any; 763 | 764 | protected _glCompile(type: any, src: any): Shader; 765 | 766 | constructor(shaderManager: ShaderManager, vertexSrc: string, fragmentSrc: string, uniforms: any, attributes: any); 767 | 768 | uuid: number; 769 | gl: WebGLRenderingContext; 770 | shaderManager: ShaderManager; 771 | program: WebGLProgram; 772 | vertexSrc: string; 773 | fragmentSrc: string; 774 | 775 | init(): void; 776 | cacheUniformLocations(keys: string[]): void; 777 | cacheAttributeLocations(keys: string[]): void; 778 | compile(): WebGLProgram; 779 | syncUniform(uniform: any): void; 780 | syncUniforms(): void; 781 | initSampler2D(uniform: any): void; 782 | destroy(): void; 783 | 784 | } 785 | export class ComplexPrimitiveShader extends Shader { 786 | 787 | constructor(shaderManager: ShaderManager); 788 | 789 | } 790 | export class PrimitiveShader extends Shader { 791 | 792 | constructor(shaderManager: ShaderManager); 793 | 794 | } 795 | export class TextureShader extends Shader { 796 | 797 | constructor(shaderManager: ShaderManager, vertexSrc?: string, fragmentSrc?: string, customUniforms?: any, customAttributes?: any); 798 | 799 | } 800 | export interface StencilMaskStack { 801 | 802 | stencilStack: any[]; 803 | reverse: boolean; 804 | count: number; 805 | 806 | } 807 | export class ObjectRenderer extends WebGLManager { 808 | 809 | start(): void; 810 | stop(): void; 811 | flush(): void; 812 | render(object?: any): void; 813 | 814 | } 815 | export class RenderTarget { 816 | 817 | constructor(gl: WebGLRenderingContext, width: number, height: number, scaleMode: number, resolution: number, root: boolean); 818 | 819 | gl: WebGLRenderingContext; 820 | frameBuffer: WebGLFramebuffer; 821 | texture: Texture; 822 | size: Rectangle; 823 | resolution: number; 824 | projectionMatrix: Matrix; 825 | transform: Matrix; 826 | frame: Rectangle; 827 | stencilBuffer: WebGLRenderbuffer; 828 | stencilMaskStack: StencilMaskStack; 829 | filterStack: any[]; 830 | scaleMode: number; 831 | root: boolean; 832 | 833 | clear(bind?: boolean): void; 834 | attachStencilBuffer(): void; 835 | activate(): void; 836 | calculateProjection(protectionFrame: Matrix): void; 837 | resize(width: number, height: number): void; 838 | destroy(): void; 839 | 840 | } 841 | export interface Quad { 842 | 843 | gl: WebGLRenderingContext; 844 | vertices: number[]; 845 | uvs: number[]; 846 | colors: number[]; 847 | indices: number[]; 848 | vertexBuffer: WebGLBuffer; 849 | indexBuffer: WebGLBuffer; 850 | 851 | map(rect: Rectangle, rect2: Rectangle): void; 852 | upload(): void; 853 | destroy(): void; 854 | 855 | } 856 | 857 | //sprites 858 | 859 | export class Sprite extends Container { 860 | 861 | static fromFrame(frameId: string): Sprite; 862 | static fromImage(imageId: string, crossorigin?: boolean, scaleMode?: number): Sprite; 863 | 864 | protected _texture: Texture; 865 | protected _width: number; 866 | protected _height: number; 867 | protected cachedTint: number; 868 | 869 | protected _onTextureUpdate(): void; 870 | 871 | constructor(texture?: Texture); 872 | 873 | anchor: Point; 874 | tint: number; 875 | blendMode: number; 876 | shader: Shader | AbstractFilter; 877 | texture: Texture; 878 | 879 | width: number; 880 | height: number; 881 | 882 | getBounds(matrix?: Matrix): Rectangle; 883 | getLocalBounds(): Rectangle; 884 | containsPoint(point: Point): boolean; 885 | destroy(destroyTexture?: boolean, destroyBaseTexture?: boolean): void; 886 | 887 | } 888 | export class SpriteRenderer extends ObjectRenderer { 889 | 890 | protected renderBatch(texture: Texture, size: number, startIndex: number): void; 891 | 892 | vertSize: number; 893 | vertByteSize: number; 894 | size: number; 895 | vertices: number[]; 896 | positions: number[]; 897 | colors: number[]; 898 | indices: number[]; 899 | currentBatchSize: number; 900 | sprites: Sprite[]; 901 | shader: Shader | AbstractFilter; 902 | 903 | render(sprite: Sprite): void; 904 | flush(): void; 905 | start(): void; 906 | destroy(): void; 907 | 908 | } 909 | 910 | //text 911 | 912 | export interface TextStyle { 913 | 914 | font?: string; 915 | fill?: string | number; 916 | align?: string; 917 | stroke?: string | number; 918 | strokeThickness?: number; 919 | wordWrap?: boolean; 920 | wordWrapWidth?: number; 921 | lineHeight?: number; 922 | dropShadow?: boolean; 923 | dropShadowColor?: string | number; 924 | dropShadowAngle?: number; 925 | dropShadowDistance?: number; 926 | padding?: number; 927 | textBaseline?: string; 928 | lineJoin?: string; 929 | miterLimit?: number; 930 | 931 | } 932 | export class Text extends Sprite { 933 | 934 | static fontPropertiesCache: any; 935 | static fontPropertiesCanvas: HTMLCanvasElement; 936 | static fontPropertiesContext: CanvasRenderingContext2D; 937 | 938 | protected _text: string; 939 | protected _style: TextStyle; 940 | 941 | protected updateText(): void; 942 | protected updateTexture(): void; 943 | protected determineFontProperties(fontStyle: TextStyle): TextStyle; 944 | protected wordWrap(text: string): boolean; 945 | 946 | constructor(text?: string, style?: TextStyle, resolution?: number); 947 | 948 | canvas: HTMLCanvasElement; 949 | context: CanvasRenderingContext2D; 950 | dirty: boolean; 951 | resolution: number; 952 | text: string; 953 | style: TextStyle; 954 | 955 | width: number; 956 | height: number; 957 | 958 | } 959 | 960 | //textures 961 | 962 | export class BaseTexture extends EventEmitter { 963 | 964 | static fromImage(imageUrl: string, crossorigin?: boolean, scaleMode?: number): BaseTexture; 965 | static fromCanvas(canvas: HTMLCanvasElement, scaleMode?: number): BaseTexture; 966 | 967 | protected _glTextures: any; 968 | 969 | protected _sourceLoaded(): void; 970 | 971 | constructor(source: HTMLImageElement | HTMLCanvasElement, scaleMode?: number, resolution?: number); 972 | 973 | uuid: number; 974 | resolution: number; 975 | width: number; 976 | height: number; 977 | realWidth: number; 978 | realHeight: number; 979 | scaleMode: number; 980 | hasLoaded: boolean; 981 | isLoading: boolean; 982 | source: HTMLImageElement | HTMLCanvasElement | HTMLVideoElement; 983 | premultipliedAlpha: boolean; 984 | imageUrl: string; 985 | isPowerOfTwo: boolean; 986 | mipmap: boolean; 987 | 988 | update(): void; 989 | loadSource(source: HTMLImageElement | HTMLCanvasElement): void; 990 | destroy(): void; 991 | dispose(): void; 992 | updateSourceImage(newSrc: string): void; 993 | 994 | on(event: 'dispose', fn: (baseTexture: BaseTexture) => void, context?: any): EventEmitter; 995 | on(event: 'error', fn: (baseTexture: BaseTexture) => void, context?: any): EventEmitter; 996 | on(event: 'loaded', fn: (baseTexture: BaseTexture) => void, context?: any): EventEmitter; 997 | on(event: 'update', fn: (baseTexture: BaseTexture) => void, context?: any): EventEmitter; 998 | on(event: string, fn: Function, context?: any): EventEmitter; 999 | 1000 | once(event: 'dispose', fn: (baseTexture: BaseTexture) => void, context?: any): EventEmitter; 1001 | once(event: 'error', fn: (baseTexture: BaseTexture) => void, context?: any): EventEmitter; 1002 | once(event: 'loaded', fn: (baseTexture: BaseTexture) => void, context?: any): EventEmitter; 1003 | once(event: 'update', fn: (baseTexture: BaseTexture) => void, context?: any): EventEmitter; 1004 | once(event: string, fn: Function, context?: any): EventEmitter; 1005 | 1006 | } 1007 | export class RenderTexture extends Texture { 1008 | 1009 | protected renderWebGL(displayObject: DisplayObject, matrix?: Matrix, clear?: boolean, updateTransform?: boolean): void; 1010 | protected renderCanvas(displayObject: DisplayObject, matrix?: Matrix, clear?: boolean, updateTransform?: boolean): void; 1011 | 1012 | constructor(renderer: CanvasRenderer | WebGLRenderer, width?: number, height?: number, scaleMode?: number, resolution?: number); 1013 | 1014 | width: number; 1015 | height: number; 1016 | resolution: number; 1017 | renderer: CanvasRenderer | WebGLRenderer; 1018 | valid: boolean; 1019 | 1020 | render(displayObject: DisplayObject, matrix?: Matrix, clear?: boolean, updateTransform?: boolean): void; 1021 | resize(width: number, height: number, updateBase?: boolean): void; 1022 | clear(): void; 1023 | destroy(): void; 1024 | getImage(): HTMLImageElement; 1025 | getPixels(): number[]; 1026 | getPixel(x: number, y: number): number[]; 1027 | getBase64(): string; 1028 | getCanvas(): HTMLCanvasElement; 1029 | 1030 | } 1031 | export class Texture extends BaseTexture { 1032 | 1033 | static fromImage(imageUrl: string, crossOrigin?: boolean, scaleMode?: number): Texture; 1034 | static fromFrame(frameId: string): Texture; 1035 | static fromCanvas(canvas: HTMLCanvasElement, scaleMode?: number): Texture; 1036 | static fromVideo(video: HTMLVideoElement | string, scaleMode?: number): Texture; 1037 | static fromVideoUrl(videoUrl: string, scaleMode?: number): Texture; 1038 | static addTextureToCache(texture: Texture, id: string): void; 1039 | static removeTextureFromCache(id: string): Texture; 1040 | static EMPTY: Texture; 1041 | 1042 | protected _frame: Rectangle; 1043 | protected _uvs: TextureUvs; 1044 | 1045 | protected onBaseTextureUpdated(baseTexture: BaseTexture): void; 1046 | protected onBaseTextureLoaded(baseTexture: BaseTexture): void; 1047 | protected _updateUvs(): void; 1048 | 1049 | constructor(baseTexture: BaseTexture, frame?: Rectangle, crop?: Rectangle, trim?: Rectangle, rotate?: boolean); 1050 | 1051 | noFrame: boolean; 1052 | baseTexture: BaseTexture; 1053 | trim: Rectangle; 1054 | valid: boolean; 1055 | requiresUpdate: boolean; 1056 | width: number; 1057 | height: number; 1058 | crop: Rectangle; 1059 | rotate: boolean; 1060 | 1061 | frame: Rectangle; 1062 | 1063 | update(): void; 1064 | destroy(destroyBase?: boolean): void; 1065 | clone(): Texture; 1066 | 1067 | } 1068 | export class TextureUvs { 1069 | 1070 | x0: number; 1071 | y0: number; 1072 | x1: number; 1073 | y1: number; 1074 | x2: number; 1075 | y2: number; 1076 | x3: number; 1077 | y3: number; 1078 | 1079 | set(frame: Rectangle, baseFrame: Rectangle, rotate: boolean): void; 1080 | 1081 | } 1082 | export class VideoBaseTexture extends BaseTexture { 1083 | 1084 | static fromVideo(video: HTMLVideoElement, scaleMode?: number): VideoBaseTexture; 1085 | static fromUrl(videoSrc: string | any | string[] | any[]): VideoBaseTexture; 1086 | 1087 | protected _loaded: boolean; 1088 | protected _onUpdate(): void; 1089 | protected _onPlayStart(): void; 1090 | protected _onPlayStop(): void; 1091 | protected _onCanPlay(): void; 1092 | 1093 | constructor(source: HTMLVideoElement, scaleMode?: number); 1094 | 1095 | autoUpdate: boolean; 1096 | 1097 | destroy(): void; 1098 | 1099 | } 1100 | 1101 | //utils 1102 | 1103 | export class utils { 1104 | 1105 | static uuid(): number; 1106 | static hex2rgb(hex: number, out?: number[]): number[]; 1107 | static hex2String(hex: number): string; 1108 | static rgb2hex(rgb: Number[]): number; 1109 | static canUseNewCanvasBlendModel(): boolean; 1110 | static getNextPowerOfTwo(number: number): number; 1111 | static isPowerOfTwo(width: number, height: number): boolean; 1112 | static getResolutionOfUrl(url: string): number; 1113 | static sayHello(type: string): void; 1114 | static isWebGLSupported(): boolean; 1115 | static sign(n: number): number; 1116 | static TextureCache: any; 1117 | static BaseTextureCache: any; 1118 | 1119 | } 1120 | 1121 | export namespace utils { 1122 | //https://github.com/primus/eventemitter3 1123 | export class EventEmitter { 1124 | 1125 | listeners(event: string): Function[]; 1126 | emit(event: string, ...args: any[]): boolean; 1127 | on(event: string, fn: Function, context?: any): EventEmitter; 1128 | once(event: string, fn: Function, context?: any): EventEmitter; 1129 | removeListener(event: string, fn: Function, context?: any, once?: boolean): EventEmitter; 1130 | removeAllListeners(event: string): EventEmitter; 1131 | 1132 | off(event: string, fn: Function, context?: any, once?: boolean): EventEmitter; 1133 | addListener(event: string, fn: Function, context?: any): EventEmitter; 1134 | 1135 | } 1136 | } 1137 | 1138 | ////////////////////////////////////////////////////////////////////////////// 1139 | ////////////////////////////EXTRAS//////////////////////////////////////////// 1140 | ////////////////////////////////////////////////////////////////////////////// 1141 | 1142 | export module extras { 1143 | 1144 | export interface BitmapTextStyle { 1145 | 1146 | font?: string | { 1147 | 1148 | name?: string; 1149 | size?: number; 1150 | 1151 | }; 1152 | align?: string; 1153 | tint?: number; 1154 | 1155 | } 1156 | export class BitmapText extends Container { 1157 | 1158 | static fonts: any; 1159 | 1160 | protected _glyphs: Sprite[]; 1161 | protected _font: string | { 1162 | tint: number; 1163 | align: string; 1164 | name: string; 1165 | size: number; 1166 | }; 1167 | protected _text: string; 1168 | 1169 | protected updateText(): void; 1170 | 1171 | constructor(text: string, style?: BitmapTextStyle); 1172 | 1173 | textWidth: number; 1174 | textHeight: number; 1175 | maxWidth: number; 1176 | maxLineHeight: number; 1177 | dirty: boolean; 1178 | 1179 | tint: number; 1180 | align: string; 1181 | font: string | { 1182 | tint: number; 1183 | align: string; 1184 | name: string; 1185 | size: number; 1186 | }; 1187 | text: string; 1188 | 1189 | } 1190 | export class MovieClip extends Sprite { 1191 | 1192 | static fromFrames(frame: string[]): MovieClip; 1193 | static fromImages(images: string[]): MovieClip; 1194 | 1195 | protected _textures: Texture[]; 1196 | protected _durations: number[]; 1197 | protected _currentTime: number; 1198 | 1199 | update(deltaTime: number): void; 1200 | 1201 | constructor(textures: Texture[]); 1202 | 1203 | animationSpeed: number; 1204 | loop: boolean; 1205 | onComplete: () => void; 1206 | currentFrame: number; 1207 | playing: boolean; 1208 | 1209 | totalFrames: number; 1210 | textures: Texture[]; 1211 | 1212 | stop(): void; 1213 | play(): void; 1214 | gotoAndStop(frameName: number): void; 1215 | gotoAndPlay(frameName: number): void; 1216 | destroy(): void; 1217 | 1218 | } 1219 | export class TilingSprite extends Sprite { 1220 | 1221 | //This is really unclean but is the only way :( 1222 | //See http://stackoverflow.com/questions/29593905/typescript-declaration-extending-class-with-static-method/29595798#29595798 1223 | //Thanks bas! 1224 | static fromFrame(frameId: string): Sprite; 1225 | static fromImage(imageId: string, crossorigin?: boolean, scaleMode?: number): Sprite; 1226 | 1227 | static fromFrame(frameId: string, width?: number, height?: number): TilingSprite; 1228 | static fromImage(imageId: string, width?: number, height?: number, crossorigin?: boolean, scaleMode?: number): TilingSprite; 1229 | 1230 | protected _tileScaleOffset: Point; 1231 | protected _tilingTexture: boolean; 1232 | protected _refreshTexture: boolean; 1233 | protected _uvs: TextureUvs[]; 1234 | 1235 | constructor(texture: Texture, width: number, height: number); 1236 | 1237 | tileScale: Point; 1238 | tilePosition: Point; 1239 | 1240 | width: number; 1241 | height: number; 1242 | originalTexture: Texture; 1243 | 1244 | getBounds(): Rectangle; 1245 | generateTilingTexture(renderer: WebGLRenderer | CanvasRenderer, texture: Texture, forcePowerOfTwo?: boolean): Texture; 1246 | containsPoint(point: Point): boolean; 1247 | destroy(): void; 1248 | 1249 | } 1250 | 1251 | } 1252 | 1253 | ////////////////////////////////////////////////////////////////////////////// 1254 | ///////////////////////////////FILTERS//////////////////////////////////////// 1255 | ////////////////////////////////////////////////////////////////////////////// 1256 | 1257 | namespace filters { 1258 | 1259 | export class AsciiFilter extends AbstractFilter { 1260 | size: number; 1261 | } 1262 | export class BloomFilter extends AbstractFilter { 1263 | 1264 | blur: number; 1265 | blurX: number; 1266 | blurY: number; 1267 | 1268 | } 1269 | export class BlurFilter extends AbstractFilter { 1270 | 1271 | protected blurXFilter: BlurXFilter; 1272 | protected blurYFilter: BlurYFilter; 1273 | 1274 | blur: number; 1275 | passes: number; 1276 | blurX: number; 1277 | blurY: number; 1278 | 1279 | } 1280 | export class BlurXFilter extends AbstractFilter { 1281 | 1282 | passes: number; 1283 | strength: number; 1284 | blur: number; 1285 | 1286 | } 1287 | export class BlurYFilter extends AbstractFilter { 1288 | 1289 | passes: number; 1290 | strength: number; 1291 | blur: number; 1292 | 1293 | } 1294 | export class SmartBlurFilter extends AbstractFilter { 1295 | 1296 | } 1297 | export class ColorMatrixFilter extends AbstractFilter { 1298 | 1299 | protected _loadMatrix(matrix: number[], multiply: boolean): void; 1300 | protected _multiply(out: number[], a: number[], b: number[]): void; 1301 | protected _colorMatrix(matrix: number[]): void; 1302 | 1303 | matrix: number[]; 1304 | 1305 | brightness(b: number, multiply?: boolean): void; 1306 | greyscale(scale: number, multiply?: boolean): void; 1307 | blackAndWhite(multiply?: boolean): void; 1308 | hue(rotation: number, multiply?: boolean): void; 1309 | contrast(amount: number, multiply?: boolean): void; 1310 | saturate(amount: number, multiply?: boolean): void; 1311 | desaturate(multiply?: boolean): void; 1312 | negative(multiply?: boolean): void; 1313 | sepia(multiply?: boolean): void; 1314 | technicolor(multiply?: boolean): void; 1315 | polaroid(multiply?: boolean): void; 1316 | toBGR(multiply?: boolean): void; 1317 | kodachrome(multiply?: boolean): void; 1318 | browni(multiply?: boolean): void; 1319 | vintage(multiply?: boolean): void; 1320 | colorTone(desaturation: number, toned: number, lightColor: string, darkColor: string, multiply?: boolean): void; 1321 | night(intensity: number, multiply?: boolean): void; 1322 | predator(amount: number, multiply?: boolean): void; 1323 | lsd(multiply?: boolean): void; 1324 | reset(): void; 1325 | 1326 | } 1327 | export class ColorStepFilter extends AbstractFilter { 1328 | 1329 | step: number; 1330 | 1331 | } 1332 | export class ConvolutionFilter extends AbstractFilter { 1333 | 1334 | constructor(matrix: number[], width: number, height: number); 1335 | 1336 | matrix: number[]; 1337 | width: number; 1338 | height: number; 1339 | 1340 | } 1341 | export class CrossHatchFilter extends AbstractFilter { 1342 | 1343 | } 1344 | export class DisplacementFilter extends AbstractFilter { 1345 | 1346 | constructor(sprite: Sprite, scale?: number); 1347 | 1348 | map: Texture; 1349 | 1350 | scale: Point; 1351 | 1352 | } 1353 | export class DotScreenFilter extends AbstractFilter { 1354 | 1355 | scale: number; 1356 | angle: number; 1357 | 1358 | } 1359 | export class BlurYTintFilter extends AbstractFilter { 1360 | 1361 | blur: number; 1362 | 1363 | } 1364 | export class DropShadowFilter extends AbstractFilter { 1365 | 1366 | blur: number; 1367 | blurX: number; 1368 | blurY: number; 1369 | color: number; 1370 | alpha: number; 1371 | distance: number; 1372 | angle: number; 1373 | 1374 | } 1375 | export class GrayFilter extends AbstractFilter { 1376 | 1377 | gray: number; 1378 | 1379 | } 1380 | export class InvertFilter extends AbstractFilter { 1381 | 1382 | invert: number; 1383 | 1384 | } 1385 | export class NoiseFilter extends AbstractFilter { 1386 | 1387 | noise: number; 1388 | 1389 | } 1390 | export class PixelateFilter extends AbstractFilter { 1391 | 1392 | size: Point; 1393 | 1394 | } 1395 | export class RGBSplitFilter extends AbstractFilter { 1396 | 1397 | red: number; 1398 | green: number; 1399 | blue: number; 1400 | 1401 | } 1402 | export class SepiaFilter extends AbstractFilter { 1403 | 1404 | sepia: number; 1405 | 1406 | } 1407 | export class ShockwaveFilter extends AbstractFilter { 1408 | 1409 | center: number[]; 1410 | params: any; 1411 | time: number; 1412 | 1413 | } 1414 | export class TiltShiftAxisFilter extends AbstractFilter { 1415 | 1416 | blur: number; 1417 | gradientBlur: number; 1418 | start: number; 1419 | end: number; 1420 | 1421 | updateDelta(): void; 1422 | 1423 | } 1424 | export class TiltShiftFilter extends AbstractFilter { 1425 | 1426 | blur: number; 1427 | gradientBlur: number; 1428 | start: number; 1429 | end: number; 1430 | 1431 | } 1432 | export class TiltShiftXFilter extends AbstractFilter { 1433 | 1434 | updateDelta(): void; 1435 | 1436 | } 1437 | export class TiltShiftYFilter extends AbstractFilter { 1438 | 1439 | updateDelta(): void; 1440 | 1441 | } 1442 | export class TwistFilter extends AbstractFilter { 1443 | 1444 | offset: Point; 1445 | radius: number; 1446 | angle: number; 1447 | 1448 | } 1449 | export class FXAAFilter extends AbstractFilter { 1450 | 1451 | applyFilter(renderer: WebGLRenderer, input: RenderTarget, output: RenderTarget): void; 1452 | 1453 | } 1454 | } 1455 | 1456 | ////////////////////////////////////////////////////////////////////////////// 1457 | ////////////////////////////INTERACTION/////////////////////////////////////// 1458 | ////////////////////////////////////////////////////////////////////////////// 1459 | 1460 | export module interaction { 1461 | 1462 | export interface InteractionEvent { 1463 | 1464 | stopped: boolean; 1465 | target: any; 1466 | type: string; 1467 | data: InteractionData; 1468 | stopPropagation(): void; 1469 | 1470 | } 1471 | 1472 | export class InteractionData { 1473 | 1474 | global: Point; 1475 | target: DisplayObject; 1476 | originalEvent: Event; 1477 | 1478 | getLocalPosition(displayObject: DisplayObject, point?: Point, globalPos?: Point): Point; 1479 | 1480 | } 1481 | 1482 | export class InteractionManager { 1483 | 1484 | protected interactionDOMElement: HTMLElement; 1485 | protected eventsAdded: boolean; 1486 | protected _tempPoint: Point; 1487 | 1488 | protected setTargetElement(element: HTMLElement, resolution: number): void; 1489 | protected addEvents(): void; 1490 | protected removeEvents(): void; 1491 | protected dispatchEvent(displayObject: DisplayObject, eventString: string, eventData: any): void; 1492 | protected onMouseDown: (event: Event) => void; 1493 | protected processMouseDown: (displayObject: DisplayObject, hit: boolean) => void; 1494 | protected onMouseUp: (event: Event) => void; 1495 | protected processMouseUp: (displayObject: DisplayObject, hit: boolean) => void; 1496 | protected onMouseMove: (event: Event) => void; 1497 | protected processMouseMove: (displayObject: DisplayObject, hit: boolean) => void; 1498 | protected onMouseOut: (event: Event) => void; 1499 | protected processMouseOverOut: (displayObject: DisplayObject, hit: boolean) => void; 1500 | protected onTouchStart: (event: Event) => void; 1501 | protected processTouchStart: (DisplayObject: DisplayObject, hit: boolean) => void; 1502 | protected onTouchEnd: (event: Event) => void; 1503 | protected processTouchEnd: (displayObject: DisplayObject, hit: boolean) => void; 1504 | protected onTouchMove: (event: Event) => void; 1505 | protected processTouchMove: (displayObject: DisplayObject, hit: boolean) => void; 1506 | protected getTouchData(touchEvent: InteractionData): InteractionData; 1507 | protected returnTouchData(touchData: InteractionData): void; 1508 | 1509 | constructor(renderer: CanvasRenderer | WebGLRenderer, options?: { autoPreventDefault?: boolean; interactionFrequence?: number; }); 1510 | 1511 | renderer: CanvasRenderer | WebGLRenderer; 1512 | autoPreventDefault: boolean; 1513 | interactionFrequency: number; 1514 | mouse: InteractionData; 1515 | eventData: { 1516 | stopped: boolean; 1517 | target: any; 1518 | type: any; 1519 | data: InteractionData; 1520 | }; 1521 | interactiveDataPool: InteractionData[]; 1522 | last: number; 1523 | currentCursorStyle: string; 1524 | resolution: number; 1525 | update(deltaTime: number): void; 1526 | 1527 | mapPositionToPoint(point: Point, x: number, y: number): void; 1528 | processInteractive(point: Point, displayObject: DisplayObject, func: (displayObject: DisplayObject, hit: boolean) => void, hitTest: boolean, interactive: boolean): boolean; 1529 | destroy(): void; 1530 | 1531 | } 1532 | 1533 | export interface InteractiveTarget { 1534 | 1535 | interactive: boolean; 1536 | buttonMode: boolean; 1537 | interactiveChildren: boolean; 1538 | defaultCursor: string; 1539 | hitArea: HitArea; 1540 | 1541 | } 1542 | 1543 | } 1544 | 1545 | ////////////////////////////////////////////////////////////////////////////// 1546 | ///////////////////////////////LOADER///////////////////////////////////////// 1547 | ////////////////////////////////////////////////////////////////////////////// 1548 | //https://github.com/englercj/resource-loader/blob/master/src/Loader.js 1549 | 1550 | export module loaders { 1551 | export interface LoaderOptions { 1552 | 1553 | crossOrigin?: boolean; 1554 | loadType?: number; 1555 | xhrType?: string; 1556 | 1557 | } 1558 | export interface ResourceDictionary { 1559 | 1560 | [index: string]: PIXI.loaders.Resource; 1561 | } 1562 | export class Loader extends EventEmitter { 1563 | 1564 | constructor(baseUrl?: string, concurrency?: number); 1565 | 1566 | baseUrl: string; 1567 | progress: number; 1568 | loading: boolean; 1569 | resources: ResourceDictionary; 1570 | 1571 | add(name: string, url: string, options?: LoaderOptions, cb?: () => void): Loader; 1572 | add(url: string, options?: LoaderOptions, cb?: () => void): Loader; 1573 | //todo I am not sure of object literal notional (or its options) so just allowing any but would love to improve this 1574 | add(obj: any, options?: LoaderOptions, cb?: () => void): Loader; 1575 | 1576 | on(event: 'complete', fn: (loader: loaders.Loader, object: any) => void, context?: any): EventEmitter; 1577 | on(event: 'error', fn: (error: Error, loader: loaders.Loader, resource: Resource) => void, context?: any): EventEmitter; 1578 | on(event: 'load', fn: (loader: loaders.Loader, resource: Resource) => void, context?: any): EventEmitter; 1579 | on(event: 'progress', fn: (loader: loaders.Loader, resource: Resource) => void, context?: any): EventEmitter; 1580 | on(event: 'start', fn: (loader: loaders.Loader) => void, context?: any): EventEmitter; 1581 | on(event: string, fn: Function, context?: any): EventEmitter; 1582 | 1583 | once(event: 'complete', fn: (loader: loaders.Loader, object: any) => void, context?: any): EventEmitter; 1584 | once(event: 'error', fn: (error: Error, loader: loaders.Loader, resource: Resource) => void, context?: any): EventEmitter; 1585 | once(event: 'load', fn: (loader: loaders.Loader, resource: Resource) => void, context?: any): EventEmitter; 1586 | once(event: 'progress', fn: (loader: loaders.Loader, resource: Resource) => void, context?: any): EventEmitter; 1587 | once(event: 'start', fn: (loader: loaders.Loader) => void, context?: any): EventEmitter; 1588 | once(event: string, fn: Function, context?: any): EventEmitter; 1589 | 1590 | before(fn: Function): Loader; 1591 | pre(fn: Function): Loader; 1592 | 1593 | after(fn: Function): Loader; 1594 | use(fn: Function): Loader; 1595 | 1596 | reset(): void; 1597 | 1598 | load(cb?: (loader: loaders.Loader, object: any) => void): Loader; 1599 | 1600 | } 1601 | export class Resource extends EventEmitter { 1602 | 1603 | static LOAD_TYPE: { 1604 | XHR: number; 1605 | IMAGE: number; 1606 | AUDIO: number; 1607 | VIDEO: number; 1608 | }; 1609 | 1610 | static XHR_READ_STATE: { 1611 | UNSENT: number; 1612 | OPENED: number; 1613 | HEADERS_RECIEVED: number; 1614 | LOADING: number; 1615 | DONE: number; 1616 | }; 1617 | 1618 | static XHR_RESPONSE_TYPE: { 1619 | DEFAULT: number; 1620 | BUFFER: number; 1621 | BLOB: number; 1622 | DOCUMENT: number; 1623 | JSON: number; 1624 | TEXT: number; 1625 | }; 1626 | 1627 | constructor(name?: string, url?: string | string[], options?: LoaderOptions); 1628 | 1629 | name: string; 1630 | texture: Texture; 1631 | textures: Texture[]; 1632 | url: string; 1633 | data: any; 1634 | crossOrigin: string; 1635 | loadType: number; 1636 | xhrType: string; 1637 | error: Error; 1638 | xhr: XMLHttpRequest; 1639 | 1640 | complete(): void; 1641 | load(cb?: () => void): void; 1642 | 1643 | } 1644 | } 1645 | 1646 | ////////////////////////////////////////////////////////////////////////////// 1647 | ///////////////////////////////MESH/////////////////////////////////////////// 1648 | ////////////////////////////////////////////////////////////////////////////// 1649 | 1650 | export module mesh { 1651 | 1652 | export class Mesh extends Container { 1653 | 1654 | static DRAW_MODES: { 1655 | TRIANGLE_MESH: number; 1656 | TRIANGLES: number; 1657 | }; 1658 | 1659 | constructor(texture: Texture, vertices?: number[], uvs?: number[], indices?: number[], drawMode?: number); 1660 | 1661 | texture: Texture; 1662 | uvs: number[]; 1663 | vertices: number[]; 1664 | indices: number[]; 1665 | dirty: boolean; 1666 | blendMode: number; 1667 | canvasPadding: number; 1668 | drawMode: number; 1669 | shader: Shader | AbstractFilter; 1670 | 1671 | getBounds(matrix?: Matrix): Rectangle; 1672 | containsPoint(point: Point): boolean; 1673 | 1674 | protected _texture: Texture; 1675 | 1676 | protected _renderCanvasTriangleMesh(context: CanvasRenderingContext2D): void; 1677 | protected _renderCanvasTriangles(context: CanvasRenderingContext2D): void; 1678 | protected _renderCanvasDrawTriangle(context: CanvasRenderingContext2D, vertices: number, uvs: number, index0: number, index1: number, index2: number): void; 1679 | protected renderMeshFlat(Mesh: Mesh): void; 1680 | protected _onTextureUpdate(): void; 1681 | 1682 | } 1683 | export class Rope extends Mesh { 1684 | 1685 | protected _ready: boolean; 1686 | 1687 | protected getTextureUvs(): TextureUvs; 1688 | 1689 | constructor(texture: Texture, points: Point[]); 1690 | 1691 | points: Point[]; 1692 | colors: number[]; 1693 | 1694 | refresh(): void; 1695 | 1696 | } 1697 | export class Plane extends Mesh { 1698 | 1699 | segmentsX: number; 1700 | segmentsY: number; 1701 | 1702 | constructor(texture: Texture, segmentsX?: number, segmentsY?: number); 1703 | 1704 | } 1705 | 1706 | 1707 | export class MeshRenderer extends ObjectRenderer { 1708 | 1709 | protected _initWebGL(mesh: Mesh): void; 1710 | 1711 | indices: number[]; 1712 | 1713 | constructor(renderer: WebGLRenderer); 1714 | 1715 | render(mesh: Mesh): void; 1716 | flush(): void; 1717 | start(): void; 1718 | destroy(): void; 1719 | 1720 | } 1721 | 1722 | export interface MeshShader extends Shader { } 1723 | 1724 | } 1725 | 1726 | namespace ticker { 1727 | 1728 | export var shared: Ticker; 1729 | 1730 | export class Ticker { 1731 | 1732 | protected _tick(time: number): void; 1733 | protected _emitter: EventEmitter; 1734 | protected _requestId: number; 1735 | protected _maxElapsedMS: number; 1736 | 1737 | protected _requestIfNeeded(): void; 1738 | protected _cancelIfNeeded(): void; 1739 | protected _startIfPossible(): void; 1740 | 1741 | autoStart: boolean; 1742 | deltaTime: number; 1743 | elapsedMS: number; 1744 | lastTime: number; 1745 | speed: number; 1746 | started: boolean; 1747 | 1748 | FPS: number; 1749 | minFPS: number; 1750 | 1751 | add(fn: (deltaTime: number) => void, context?: any): Ticker; 1752 | addOnce(fn: (deltaTime: number) => void, context?: any): Ticker; 1753 | remove(fn: (deltaTime: number) => void, context?: any): Ticker; 1754 | start(): void; 1755 | stop(): void; 1756 | update(): void; 1757 | 1758 | } 1759 | 1760 | } 1761 | } 1762 | 1763 | declare module 'pixi.js' { 1764 | export = PIXI; 1765 | } --------------------------------------------------------------------------------