/* global PIXI:true */ /** * @author Mat Groves <mat@goodboydigital.com> * @copyright 2013-2014 GoodBoyDigital * @license {@link https://github.com/GoodBoyDigital/pixi.js/blob/master/LICENSE|MIT License} */ /** * @namespace PIXI */ var PIXI = { math: require('./math'), /** * Constant to identify the WEBGL Renderer Type * * @property {number} WEBGL_RENDERER * @constant * @static */ WEBGL_RENDERER: 1, /** * Constant to identify the CANVAS Renderer Type * * @property {number} CANVAS_RENDERER * @constant * @static */ CANVAS_RENDERER: 2, /** * String of the current PIXI version * * @property {string} VERSION * @constant * @static */ VERSION: require('../package.json').version, /** * Various blend modes supported by PIXI. IMPORTANT - The WebGL renderer only supports * the NORMAL, ADD, MULTIPLY and SCREEN blend modes. Anything else will silently act like * NORMAL. * * @property {object} blendModes * @property {number} blendModes.NORMAL * @property {number} blendModes.ADD * @property {number} blendModes.MULTIPLY * @property {number} blendModes.SCREEN * @property {number} blendModes.OVERLAY * @property {number} blendModes.DARKEN * @property {number} blendModes.LIGHTEN * @property {number} blendModes.COLOR_DODGE * @property {number} blendModes.COLOR_BURN * @property {number} blendModes.HARD_LIGHT * @property {number} blendModes.SOFT_LIGHT * @property {number} blendModes.DIFFERENCE * @property {number} blendModes.EXCLUSION * @property {number} blendModes.HUE * @property {number} blendModes.SATURATION * @property {number} blendModes.COLOR * @property {number} blendModes.LUMINOSITY * @constant * @static */ blendModes: { NORMAL: 0, ADD: 1, MULTIPLY: 2, SCREEN: 3, OVERLAY: 4, DARKEN: 5, LIGHTEN: 6, COLOR_DODGE: 7, COLOR_BURN: 8, HARD_LIGHT: 9, SOFT_LIGHT: 10, DIFFERENCE: 11, EXCLUSION: 12, HUE: 13, SATURATION: 14, COLOR: 15, LUMINOSITY: 16 }, /** * The scale modes that are supported by pixi. * * The DEFAULT scale mode affects the default scaling mode of future operations. * It can be re-assigned to either LINEAR or NEAREST, depending upon suitability. * * @property {object} scaleModes * @property {number} scaleModes.DEFAULT=LINEAR * @property {number} scaleModes.LINEAR Smooth scaling * @property {number} scaleModes.NEAREST Pixelating scaling * @constant * @static */ scaleModes: { DEFAULT: 0, LINEAR: 0, NEAREST: 1 }, /** * The prefix that denotes a URL is for a retina asset * * @property {string} RETINA_PREFIX * @constant * @static */ RETINA_PREFIX: '@2x', /** * The default render options if none are supplied to {@link PIXI.WebGLRenderer} * or {@link PIXI.CanvasRenderer}. * * @property {object} defaultRenderOptions * @property {HTMLCanvasElement} defaultRenderOptions.view=null * @property {boolean} defaultRenderOptions.transparent=false * @property {boolean} defaultRenderOptions.antialias=false * @property {boolean} defaultRenderOptions.preserveDrawingBuffer=false * @property {number} defaultRenderOptions.resolution=1 * @property {boolean} defaultRenderOptions.clearBeforeRender=true * @property {boolean} defaultRenderOptions.autoResize=false * @constant * @static */ defaultRenderOptions: { view: null, resolution: 1, antialias: false, autoResize: false, transparent: false, clearBeforeRender: true, preserveDrawingBuffer: false }, /** * Logs out the version and renderer information for this running instance of PIXI. * If you don't want to see this message you can set PIXI.sayHello = false; * * @property {object} defaultRenderOptions * @property {HTMLCanvasElement} defaultRenderOptions.view=null * @property {boolean} defaultRenderOptions.transparent=false * @property {boolean} defaultRenderOptions.antialias=false * @property {boolean} defaultRenderOptions.preserveDrawingBuffer=false * @property {number} defaultRenderOptions.resolution=1 * @property {boolean} defaultRenderOptions.clearBeforeRender=true * @property {boolean} defaultRenderOptions.autoResize=false * @constant * @static */ sayHello: function (type) { if (navigator.userAgent.toLowerCase().indexOf('chrome') > -1) { var args = [ '%c %c %c Pixi.js ' + PIXI.VERSION + ' - ' + type + ' %c ' + ' %c ' + ' http://www.pixijs.com/ %c %c ♥%c♥%c♥ ', 'background: #ff66a5', 'background: #ff66a5', 'color: #ff66a5; background: #030307;', 'background: #ff66a5', 'background: #ffc3dc', 'background: #ff66a5', 'color: #ff2424; background: #fff', 'color: #ff2424; background: #fff', 'color: #ff2424; background: #fff' ]; console.log.apply(console, args); } else if (window['console']) { console.log('Pixi.js ' + PIXI.VERSION + ' - http://www.pixijs.com/'); } PIXI.sayHello = false; } }; module.exports = PIXI; /************* * TODO: *************/ // used to create uids for various pixi objects.. PIXI._UID = 0; if(typeof(Float32Array) != 'undefined') { PIXI.Float32Array = Float32Array; PIXI.Uint16Array = Uint16Array; // Uint32Array and ArrayBuffer only used by WebGL renderer // We can suppose that if WebGL is supported then typed arrays are supported too // as they predate WebGL support for all browsers: // see typed arrays support: http://caniuse.com/#search=TypedArrays // see WebGL support: http://caniuse.com/#search=WebGL PIXI.Uint32Array = Uint32Array; PIXI.ArrayBuffer = ArrayBuffer; } else { PIXI.Float32Array = Array; PIXI.Uint16Array = Array; } // interaction frequency PIXI.INTERACTION_FREQUENCY = 30; PIXI.AUTO_PREVENT_DEFAULT = true;