Newer
Older
pixi.js / bundles / pixi.js / src / index.js
import * as accessibility from '@pixi/accessibility';
import * as app from '@pixi/app';
import * as constants from '@pixi/constants';
import * as core from '@pixi/core';
import * as display from '@pixi/display';
import * as extract from '@pixi/extract';
import * as graphics from '@pixi/graphics';
import * as interaction from '@pixi/interaction';
import * as loaders from '@pixi/loaders';
import * as math from '@pixi/math';
import * as mesh from '@pixi/mesh';
// import * as particles from '@pixi/particles';
import * as prepare from '@pixi/prepare';
import * as sprite from '@pixi/sprite';
import * as spriteAnimated from '@pixi/sprite-animated';
import * as spritesheet from '@pixi/spritesheet';
import * as spriteTiling from '@pixi/sprite-tiling';
import * as text from '@pixi/text';
import * as textBitmap from '@pixi/text-bitmap';
import * as ticker from '@pixi/ticker';
import * as utils from '@pixi/utils';
import { settings } from '@pixi/settings';
import { AlphaFilter } from '@pixi/filter-alpha';
import { BlurFilter, BlurXFilter, BlurYFilter } from '@pixi/filter-blur';
import { ColorMatrixFilter } from '@pixi/filter-color-matrix';
import { DisplacementFilter } from '@pixi/filter-displacement';
import { FXAAFilter } from '@pixi/filter-fxaa';
import { NoiseFilter } from '@pixi/filter-noise';
import '@pixi/mixin-app-loader';
import '@pixi/mixin-cache-as-bitmap';
import '@pixi/mixin-get-child-by-name';
import '@pixi/mixin-get-global-position';
import deprecated from './deprecated';

// Install renderer plugins
core.Renderer.registerPlugin('accessibility', accessibility.AccessibilityManager);
core.Renderer.registerPlugin('extract', extract.Extract);
core.Renderer.registerPlugin('graphics', graphics.GraphicsRenderer);
core.Renderer.registerPlugin('interaction', interaction.InteractionManager);
core.Renderer.registerPlugin('mesh', mesh.MeshRenderer);
// core.Renderer.registerPlugin('particle', particles.ParticleRenderer);
core.Renderer.registerPlugin('prepare', prepare.Prepare);
core.Renderer.registerPlugin('sprite', sprite.SpriteRenderer);
core.Renderer.registerPlugin('tilingSprite', spriteTiling.TilingSpriteRenderer);

loaders.Loader.registerPlugin(textBitmap.BitmapFontLoader);
loaders.Loader.registerPlugin(spritesheet.SpritesheetLoader);

// Apply deplayed mixins
utils.mixins.performMixins();

/**
 * String of the current PIXI version.
 *
 * @static
 * @constant
 * @memberof PIXI
 * @name VERSION
 * @type {string}
 */
const VERSION = '__VERSION__';

/**
 * @namespace PIXI
 */
const PIXI = { VERSION };

/**
 * This namespace contains WebGL-only display filters that can be applied
 * to DisplayObjects using the {@link PIXI.DisplayObject#filters filters} property.
 * @example
 * // Create a new application
 * const app = new PIXI.Application();
 *
 * // Draw a green rectangle
 * const rect = new PIXI.Graphics()
 *     .beginFill(0x00ff00)
 *     .drawRect(40, 40, 200, 200);
 *
 * // Add a blur filter
 * rect.filters = [new PIXI.filters.BlurFilter()];
 *
 * // Display rectangle
 * app.stage.addChild(rect);
 * document.body.appendChild(app.view);
 * @namespace PIXI.filters
 */
const filters = {
    AlphaFilter,
    BlurFilter,
    BlurXFilter,
    BlurYFilter,
    ColorMatrixFilter,
    DisplacementFilter,
    FXAAFilter,
    NoiseFilter,
};

// Add to namespace window object for people doing `import 'pixi.js'`
if (typeof window !== 'undefined')
{
    const namespaces = {
        accessibility,
        extract,
        filters,
        interaction,
        prepare,
        settings,
        utils,
    };

    window.PIXI = Object.assign(
        PIXI,
        namespaces,
        app,
        constants,
        core,
        display,
        graphics,
        loaders,
        math,
        mesh,
        // particles,
        sprite,
        spriteAnimated,
        spritesheet,
        spriteTiling,
        text,
        textBitmap,
        ticker
    );

    // Deprecations only apply to Window object
    deprecated(PIXI);
}

// Export ES for those importing specifically by name,
// e.g., `import {autoDetectRenderer} from 'pixi.js'`
export * from '@pixi/app';
export * from '@pixi/constants';
export * from '@pixi/core';
export * from '@pixi/display';
export * from '@pixi/graphics';
export * from '@pixi/loaders';
export * from '@pixi/math';
export * from '@pixi/mesh';
export * from '@pixi/particles';
export * from '@pixi/sprite';
export * from '@pixi/spritesheet';
export * from '@pixi/sprite-animated';
export * from '@pixi/sprite-tiling';
export * from '@pixi/text';
export * from '@pixi/text-bitmap';
export * from '@pixi/ticker';
export {
    PIXI,
    VERSION,
    accessibility,
    extract,
    filters,
    interaction,
    prepare,
    settings,
    utils,
};