UNPKG

@pixi/utils

Version:

Collection of utilities used by PixiJS

1 lines 4.49 kB
{"version":3,"file":"premultiply.mjs","sources":["../../src/color/premultiply.ts"],"sourcesContent":["import { Color } from '@pixi/color';\nimport { BLEND_MODES } from '@pixi/constants';\nimport { deprecation } from '../logging/deprecation';\n\n/**\n * Corrects PixiJS blend, takes premultiplied alpha into account\n * @memberof PIXI.utils\n * @function mapPremultipliedBlendModes\n * @private\n * @returns {Array<number[]>} Mapped modes.\n */\nfunction mapPremultipliedBlendModes(): number[][]\n{\n const pm = [];\n const npm = [];\n\n for (let i = 0; i < 32; i++)\n {\n pm[i] = i;\n npm[i] = i;\n }\n\n pm[BLEND_MODES.NORMAL_NPM] = BLEND_MODES.NORMAL;\n pm[BLEND_MODES.ADD_NPM] = BLEND_MODES.ADD;\n pm[BLEND_MODES.SCREEN_NPM] = BLEND_MODES.SCREEN;\n\n npm[BLEND_MODES.NORMAL] = BLEND_MODES.NORMAL_NPM;\n npm[BLEND_MODES.ADD] = BLEND_MODES.ADD_NPM;\n npm[BLEND_MODES.SCREEN] = BLEND_MODES.SCREEN_NPM;\n\n const array: number[][] = [];\n\n array.push(npm);\n array.push(pm);\n\n return array;\n}\n\n/**\n * maps premultiply flag and blendMode to adjusted blendMode\n * @memberof PIXI.utils\n * @type {Array<number[]>}\n */\nexport const premultiplyBlendMode = mapPremultipliedBlendModes();\n\n/**\n * changes blendMode according to texture format\n * @memberof PIXI.utils\n * @function correctBlendMode\n * @param {number} blendMode - supposed blend mode\n * @param {boolean} premultiplied - whether source is premultiplied\n * @returns {number} true blend mode for this texture\n */\nexport function correctBlendMode(blendMode: number, premultiplied: boolean): number\n{\n return premultiplyBlendMode[premultiplied ? 1 : 0][blendMode];\n}\n\n/**\n * @memberof PIXI.utils\n * @function premultiplyRgba\n * @deprecated since 7.2.0\n * @see PIXI.Color.premultiply\n * @param {Float32Array|number[]} rgb -\n * @param {number} alpha -\n * @param {Float32Array} [out] -\n * @param {boolean} [premultiply=true] -\n */\nexport function premultiplyRgba(\n rgb: Float32Array | number[],\n alpha: number,\n out?: Float32Array,\n premultiply = true\n): Float32Array\n{\n if (process.env.DEBUG)\n {\n deprecation('7.2.0', `utils.premultiplyRgba has moved to Color.premultiply`);\n }\n\n return Color.shared\n .setValue(rgb)\n .premultiply(alpha, premultiply)\n .toArray(out ?? new Float32Array(4));\n}\n\n/**\n * @memberof PIXI.utils\n * @function premultiplyTint\n * @deprecated since 7.2.0\n * @see PIXI.Color.toPremultiplied\n * @param {number} tint -\n * @param {number} alpha -\n */\nexport function premultiplyTint(tint: number, alpha: number): number\n{\n if (process.env.DEBUG)\n {\n deprecation('7.2.0', `utils.premultiplyTint has moved to Color.toPremultiplied`);\n }\n\n return Color.shared\n .setValue(tint)\n .toPremultiplied(alpha);\n}\n\n/**\n * @memberof PIXI.utils\n * @function premultiplyTintToRgba\n * @deprecated since 7.2.0\n * @see PIXI.Color.premultiply\n * @param {number} tint -\n * @param {number} alpha -\n * @param {Float32Array} [out] -\n * @param {boolean} [premultiply=true] -\n */\nexport function premultiplyTintToRgba(tint: number, alpha: number, out?: Float32Array, premultiply = true): Float32Array\n{\n if (process.env.DEBUG)\n {\n deprecation('7.2.0', `utils.premultiplyTintToRgba has moved to Color.premultiply`);\n }\n\n return Color.shared\n .setValue(tint)\n .premultiply(alpha, premultiply)\n .toArray(out ?? new Float32Array(4));\n}\n"],"names":[],"mappings":";;;AAWA,SAAS,6BACT;AACI,QAAM,KAAK,CAAA,GACL,MAAM;AAEH,WAAA,IAAI,GAAG,IAAI,IAAI;AAEpB,OAAG,CAAC,IAAI,GACR,IAAI,CAAC,IAAI;AAGb,KAAG,YAAY,UAAU,IAAI,YAAY,QACzC,GAAG,YAAY,OAAO,IAAI,YAAY,KACtC,GAAG,YAAY,UAAU,IAAI,YAAY,QAEzC,IAAI,YAAY,MAAM,IAAI,YAAY,YACtC,IAAI,YAAY,GAAG,IAAI,YAAY,SACnC,IAAI,YAAY,MAAM,IAAI,YAAY;AAEtC,QAAM,QAAoB,CAAA;AAE1B,SAAA,MAAM,KAAK,GAAG,GACd,MAAM,KAAK,EAAE,GAEN;AACX;AAOO,MAAM,uBAAuB,2BAA2B;AAU/C,SAAA,iBAAiB,WAAmB,eACpD;AACI,SAAO,qBAAqB,gBAAgB,IAAI,CAAC,EAAE,SAAS;AAChE;AAYO,SAAS,gBACZ,KACA,OACA,KACA,cAAc,IAElB;AAGQ,SAAA,YAAY,SAAS,sDAAsD,GAGxE,MAAM,OACR,SAAS,GAAG,EACZ,YAAY,OAAO,WAAW,EAC9B,QAAQ,OAAO,IAAI,aAAa,CAAC,CAAC;AAC3C;AAUgB,SAAA,gBAAgB,MAAc,OAC9C;AAGoB,SAAA,YAAA,SAAS,0DAA0D,GAG5E,MAAM,OACR,SAAS,IAAI,EACb,gBAAgB,KAAK;AAC9B;AAYO,SAAS,sBAAsB,MAAc,OAAe,KAAoB,cAAc,IACrG;AAGQ,SAAA,YAAY,SAAS,4DAA4D,GAG9E,MAAM,OACR,SAAS,IAAI,EACb,YAAY,OAAO,WAAW,EAC9B,QAAQ,OAAO,IAAI,aAAa,CAAC,CAAC;AAC3C;"}