/**
* Different types of environments for WebGL.
*
* @static
* @memberof PIXI
* @name ENV
* @enum {number}
* @property {number} WEBGL_LEGACY - Used for older v1 WebGL devices. PixiJS will aim to ensure compatibility
* with older / less advanced devices. If you experience unexplained flickering prefer this environment.
* @property {number} WEBGL - Version 1 of WebGL
* @property {number} WEBGL2 - Version 2 of WebGL
*/
export const ENV = {
WEBGL_LEGACY: 0,
WEBGL: 1,
WEBGL2: 2,
};
/**
* Constant to identify the Renderer Type.
*
* @static
* @memberof PIXI
* @name RENDERER_TYPE
* @enum {number}
* @property {number} UNKNOWN - Unknown render type.
* @property {number} WEBGL - WebGL render type.
* @property {number} CANVAS - Canvas render type.
*/
export const RENDERER_TYPE = {
UNKNOWN: 0,
WEBGL: 1,
CANVAS: 2,
};
/**
* 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.
*
* @memberof PIXI
* @name BLEND_MODES
* @enum {number}
* @property {number} NORMAL
* @property {number} ADD
* @property {number} MULTIPLY
* @property {number} SCREEN
* @property {number} OVERLAY
* @property {number} DARKEN
* @property {number} LIGHTEN
* @property {number} COLOR_DODGE
* @property {number} COLOR_BURN
* @property {number} HARD_LIGHT
* @property {number} SOFT_LIGHT
* @property {number} DIFFERENCE
* @property {number} EXCLUSION
* @property {number} HUE
* @property {number} SATURATION
* @property {number} COLOR
* @property {number} LUMINOSITY
* @property {number} NORMAL_NPM
* @property {number} ADD_NPM
* @property {number} SCREEN_NPM
* @property {number} NONE
* @property {number} SRC_IN
* @property {number} SRC_OUT
* @property {number} SRC_ATOP
* @property {number} DST_OVER
* @property {number} DST_IN
* @property {number} DST_OUT
* @property {number} DST_ATOP
* @property {number} SUBTRACT
* @property {number} SRC_OVER
* @property {number} ERASE
*/
export const BLEND_MODES = {
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,
NORMAL_NPM: 17,
ADD_NPM: 18,
SCREEN_NPM: 19,
NONE: 20,
SRC_OVER: 0,
SRC_IN: 21,
SRC_OUT: 22,
SRC_ATOP: 23,
DST_OVER: 24,
DST_IN: 25,
DST_OUT: 26,
DST_ATOP: 27,
ERASE: 26,
SUBTRACT: 28,
};
/**
* Various webgl draw modes. These can be used to specify which GL drawMode to use
* under certain situations and renderers.
*
* @memberof PIXI
* @static
* @name DRAW_MODES
* @enum {number}
* @property {number} POINTS
* @property {number} LINES
* @property {number} LINE_LOOP
* @property {number} LINE_STRIP
* @property {number} TRIANGLES
* @property {number} TRIANGLE_STRIP
* @property {number} TRIANGLE_FAN
*/
export const DRAW_MODES = {
POINTS: 0,
LINES: 1,
LINE_LOOP: 2,
LINE_STRIP: 3,
TRIANGLES: 4,
TRIANGLE_STRIP: 5,
TRIANGLE_FAN: 6,
};
/**
* Various GL texture/resources formats.
*
* @memberof PIXI
* @static
* @name FORMATS
* @enum {number}
* @property {number} RGBA=6408
* @property {number} RGB=6407
* @property {number} ALPHA=6406
* @property {number} LUMINANCE=6409
* @property {number} LUMINANCE_ALPHA=6410
* @property {number} DEPTH_COMPONENT=6402
* @property {number} DEPTH_STENCIL=34041
*/
export const FORMATS = {
RGBA: 6408,
RGB: 6407,
ALPHA: 6406,
LUMINANCE: 6409,
LUMINANCE_ALPHA: 6410,
DEPTH_COMPONENT: 6402,
DEPTH_STENCIL: 34041,
};
/**
* Various GL target types.
*
* @memberof PIXI
* @static
* @name TARGETS
* @enum {number}
* @property {number} TEXTURE_2D=3553
* @property {number} TEXTURE_CUBE_MAP=34067
* @property {number} TEXTURE_2D_ARRAY=35866
* @property {number} TEXTURE_CUBE_MAP_POSITIVE_X=34069
* @property {number} TEXTURE_CUBE_MAP_NEGATIVE_X=34070
* @property {number} TEXTURE_CUBE_MAP_POSITIVE_Y=34071
* @property {number} TEXTURE_CUBE_MAP_NEGATIVE_Y=34072
* @property {number} TEXTURE_CUBE_MAP_POSITIVE_Z=34073
* @property {number} TEXTURE_CUBE_MAP_NEGATIVE_Z=34074
*/
export const TARGETS = {
TEXTURE_2D: 3553,
TEXTURE_CUBE_MAP: 34067,
TEXTURE_2D_ARRAY: 35866,
TEXTURE_CUBE_MAP_POSITIVE_X: 34069,
TEXTURE_CUBE_MAP_NEGATIVE_X: 34070,
TEXTURE_CUBE_MAP_POSITIVE_Y: 34071,
TEXTURE_CUBE_MAP_NEGATIVE_Y: 34072,
TEXTURE_CUBE_MAP_POSITIVE_Z: 34073,
TEXTURE_CUBE_MAP_NEGATIVE_Z: 34074,
};
/**
* Various GL data format types.
*
* @memberof PIXI
* @static
* @name TYPES
* @enum {number}
* @property {number} UNSIGNED_BYTE=5121
* @property {number} UNSIGNED_SHORT=5123
* @property {number} UNSIGNED_SHORT_5_6_5=33635
* @property {number} UNSIGNED_SHORT_4_4_4_4=32819
* @property {number} UNSIGNED_SHORT_5_5_5_1=32820
* @property {number} FLOAT=5126
* @property {number} HALF_FLOAT=36193
*/
export const TYPES = {
UNSIGNED_BYTE: 5121,
UNSIGNED_SHORT: 5123,
UNSIGNED_SHORT_5_6_5: 33635,
UNSIGNED_SHORT_4_4_4_4: 32819,
UNSIGNED_SHORT_5_5_5_1: 32820,
FLOAT: 5126,
HALF_FLOAT: 36193,
};
/**
* The scale modes that are supported by pixi.
*
* The {@link PIXI.settings.SCALE_MODE} scale mode affects the default scaling mode of future operations.
* It can be re-assigned to either LINEAR or NEAREST, depending upon suitability.
*
* @memberof PIXI
* @static
* @name SCALE_MODES
* @enum {number}
* @property {number} LINEAR Smooth scaling
* @property {number} NEAREST Pixelating scaling
*/
export const SCALE_MODES = {
LINEAR: 1,
NEAREST: 0,
};
/**
* The wrap modes that are supported by pixi.
*
* The {@link PIXI.settings.WRAP_MODE} wrap mode affects the default wrapping mode of future operations.
* It can be re-assigned to either CLAMP or REPEAT, depending upon suitability.
* If the texture is non power of two then clamp will be used regardless as WebGL can
* only use REPEAT if the texture is po2.
*
* This property only affects WebGL.
*
* @name WRAP_MODES
* @memberof PIXI
* @static
* @enum {number}
* @property {number} CLAMP - The textures uvs are clamped
* @property {number} REPEAT - The texture uvs tile and repeat
* @property {number} MIRRORED_REPEAT - The texture uvs tile and repeat with mirroring
*/
export const WRAP_MODES = {
CLAMP: 33071,
REPEAT: 10497,
MIRRORED_REPEAT: 33648,
};
/**
* Mipmap filtering modes that are supported by pixi.
*
* The {@link PIXI.settings.MIPMAP_TEXTURES} affects default texture filtering.
* Mipmaps are generated for a baseTexture if its `mipmap` field is `ON`,
* or its `POW2` and texture dimensions are powers of 2.
* Due to platform restriction, `ON` option will work like `POW2` for webgl-1.
*
* This property only affects WebGL.
*
* @name MIPMAP_MODES
* @memberof PIXI
* @static
* @enum {number}
* @property {number} OFF - No mipmaps
* @property {number} POW2 - Generate mipmaps if texture dimensions are pow2
* @property {number} ON - Always generate mipmaps
*/
export const MIPMAP_MODES = {
OFF: 0,
POW2: 1,
ON: 2,
};
/**
* The gc modes that are supported by pixi.
*
* The {@link PIXI.settings.GC_MODE} Garbage Collection mode for PixiJS textures is AUTO
* If set to GC_MODE, the renderer will occasionally check textures usage. If they are not
* used for a specified period of time they will be removed from the GPU. They will of course
* be uploaded again when they are required. This is a silent behind the scenes process that
* should ensure that the GPU does not get filled up.
*
* Handy for mobile devices!
* This property only affects WebGL.
*
* @name GC_MODES
* @enum {number}
* @static
* @memberof PIXI
* @property {number} AUTO - Garbage collection will happen periodically automatically
* @property {number} MANUAL - Garbage collection will need to be called manually
*/
export const GC_MODES = {
AUTO: 0,
MANUAL: 1,
};
/**
* Constants that specify float precision in shaders.
*
* @name PRECISION
* @memberof PIXI
* @static
* @enum {string}
* @constant
* @property {string} LOW='lowp'
* @property {string} MEDIUM='mediump'
* @property {string} HIGH='highp'
*/
export const PRECISION = {
LOW: 'lowp',
MEDIUM: 'mediump',
HIGH: 'highp',
};