├── 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 | }
--------------------------------------------------------------------------------