@pixi/core
Version:
Core PixiJS
1 lines • 4.81 kB
Source Map (JSON)
{"version":3,"file":"mapWebGLBlendModesToPixi.mjs","sources":["../../../src/state/utils/mapWebGLBlendModesToPixi.ts"],"sourcesContent":["import { BLEND_MODES } from '@pixi/constants';\n\n/**\n * Maps gl blend combinations to WebGL.\n * @memberof PIXI\n * @function mapWebGLBlendModesToPixi\n * @private\n * @param {WebGLRenderingContext} gl - The rendering context.\n * @param {number[][]} [array=[]] - The array to output into.\n * @returns {number[][]} Mapped modes.\n */\nexport function mapWebGLBlendModesToPixi(gl: WebGLRenderingContextBase, array: number[][] = []): number[][]\n{\n // TODO - premultiply alpha would be different.\n // add a boolean for that!\n array[BLEND_MODES.NORMAL] = [gl.ONE, gl.ONE_MINUS_SRC_ALPHA];\n array[BLEND_MODES.ADD] = [gl.ONE, gl.ONE];\n array[BLEND_MODES.MULTIPLY] = [gl.DST_COLOR, gl.ONE_MINUS_SRC_ALPHA, gl.ONE, gl.ONE_MINUS_SRC_ALPHA];\n array[BLEND_MODES.SCREEN] = [gl.ONE, gl.ONE_MINUS_SRC_COLOR, gl.ONE, gl.ONE_MINUS_SRC_ALPHA];\n array[BLEND_MODES.OVERLAY] = [gl.ONE, gl.ONE_MINUS_SRC_ALPHA];\n array[BLEND_MODES.DARKEN] = [gl.ONE, gl.ONE_MINUS_SRC_ALPHA];\n array[BLEND_MODES.LIGHTEN] = [gl.ONE, gl.ONE_MINUS_SRC_ALPHA];\n array[BLEND_MODES.COLOR_DODGE] = [gl.ONE, gl.ONE_MINUS_SRC_ALPHA];\n array[BLEND_MODES.COLOR_BURN] = [gl.ONE, gl.ONE_MINUS_SRC_ALPHA];\n array[BLEND_MODES.HARD_LIGHT] = [gl.ONE, gl.ONE_MINUS_SRC_ALPHA];\n array[BLEND_MODES.SOFT_LIGHT] = [gl.ONE, gl.ONE_MINUS_SRC_ALPHA];\n array[BLEND_MODES.DIFFERENCE] = [gl.ONE, gl.ONE_MINUS_SRC_ALPHA];\n array[BLEND_MODES.EXCLUSION] = [gl.ONE, gl.ONE_MINUS_SRC_ALPHA];\n array[BLEND_MODES.HUE] = [gl.ONE, gl.ONE_MINUS_SRC_ALPHA];\n array[BLEND_MODES.SATURATION] = [gl.ONE, gl.ONE_MINUS_SRC_ALPHA];\n array[BLEND_MODES.COLOR] = [gl.ONE, gl.ONE_MINUS_SRC_ALPHA];\n array[BLEND_MODES.LUMINOSITY] = [gl.ONE, gl.ONE_MINUS_SRC_ALPHA];\n array[BLEND_MODES.NONE] = [0, 0];\n\n // not-premultiplied blend modes\n array[BLEND_MODES.NORMAL_NPM] = [gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA, gl.ONE, gl.ONE_MINUS_SRC_ALPHA];\n array[BLEND_MODES.ADD_NPM] = [gl.SRC_ALPHA, gl.ONE, gl.ONE, gl.ONE];\n array[BLEND_MODES.SCREEN_NPM] = [gl.SRC_ALPHA, gl.ONE_MINUS_SRC_COLOR, gl.ONE, gl.ONE_MINUS_SRC_ALPHA];\n\n // composite operations\n array[BLEND_MODES.SRC_IN] = [gl.DST_ALPHA, gl.ZERO];\n array[BLEND_MODES.SRC_OUT] = [gl.ONE_MINUS_DST_ALPHA, gl.ZERO];\n array[BLEND_MODES.SRC_ATOP] = [gl.DST_ALPHA, gl.ONE_MINUS_SRC_ALPHA];\n array[BLEND_MODES.DST_OVER] = [gl.ONE_MINUS_DST_ALPHA, gl.ONE];\n array[BLEND_MODES.DST_IN] = [gl.ZERO, gl.SRC_ALPHA];\n array[BLEND_MODES.DST_OUT] = [gl.ZERO, gl.ONE_MINUS_SRC_ALPHA];\n array[BLEND_MODES.DST_ATOP] = [gl.ONE_MINUS_DST_ALPHA, gl.SRC_ALPHA];\n array[BLEND_MODES.XOR] = [gl.ONE_MINUS_DST_ALPHA, gl.ONE_MINUS_SRC_ALPHA];\n\n // SUBTRACT from flash\n array[BLEND_MODES.SUBTRACT] = [gl.ONE, gl.ONE, gl.ONE, gl.ONE, gl.FUNC_REVERSE_SUBTRACT, gl.FUNC_ADD];\n\n return array;\n}\n"],"names":[],"mappings":";AAWO,SAAS,yBAAyB,IAA+B,QAAoB,IAC5F;AAGI,SAAA,MAAM,YAAY,MAAM,IAAI,CAAC,GAAG,KAAK,GAAG,mBAAmB,GAC3D,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,KAAK,GAAG,GAAG,GACxC,MAAM,YAAY,QAAQ,IAAI,CAAC,GAAG,WAAW,GAAG,qBAAqB,GAAG,KAAK,GAAG,mBAAmB,GACnG,MAAM,YAAY,MAAM,IAAI,CAAC,GAAG,KAAK,GAAG,qBAAqB,GAAG,KAAK,GAAG,mBAAmB,GAC3F,MAAM,YAAY,OAAO,IAAI,CAAC,GAAG,KAAK,GAAG,mBAAmB,GAC5D,MAAM,YAAY,MAAM,IAAI,CAAC,GAAG,KAAK,GAAG,mBAAmB,GAC3D,MAAM,YAAY,OAAO,IAAI,CAAC,GAAG,KAAK,GAAG,mBAAmB,GAC5D,MAAM,YAAY,WAAW,IAAI,CAAC,GAAG,KAAK,GAAG,mBAAmB,GAChE,MAAM,YAAY,UAAU,IAAI,CAAC,GAAG,KAAK,GAAG,mBAAmB,GAC/D,MAAM,YAAY,UAAU,IAAI,CAAC,GAAG,KAAK,GAAG,mBAAmB,GAC/D,MAAM,YAAY,UAAU,IAAI,CAAC,GAAG,KAAK,GAAG,mBAAmB,GAC/D,MAAM,YAAY,UAAU,IAAI,CAAC,GAAG,KAAK,GAAG,mBAAmB,GAC/D,MAAM,YAAY,SAAS,IAAI,CAAC,GAAG,KAAK,GAAG,mBAAmB,GAC9D,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,KAAK,GAAG,mBAAmB,GACxD,MAAM,YAAY,UAAU,IAAI,CAAC,GAAG,KAAK,GAAG,mBAAmB,GAC/D,MAAM,YAAY,KAAK,IAAI,CAAC,GAAG,KAAK,GAAG,mBAAmB,GAC1D,MAAM,YAAY,UAAU,IAAI,CAAC,GAAG,KAAK,GAAG,mBAAmB,GAC/D,MAAM,YAAY,IAAI,IAAI,CAAC,GAAG,CAAC,GAG/B,MAAM,YAAY,UAAU,IAAI,CAAC,GAAG,WAAW,GAAG,qBAAqB,GAAG,KAAK,GAAG,mBAAmB,GACrG,MAAM,YAAY,OAAO,IAAI,CAAC,GAAG,WAAW,GAAG,KAAK,GAAG,KAAK,GAAG,GAAG,GAClE,MAAM,YAAY,UAAU,IAAI,CAAC,GAAG,WAAW,GAAG,qBAAqB,GAAG,KAAK,GAAG,mBAAmB,GAGrG,MAAM,YAAY,MAAM,IAAI,CAAC,GAAG,WAAW,GAAG,IAAI,GAClD,MAAM,YAAY,OAAO,IAAI,CAAC,GAAG,qBAAqB,GAAG,IAAI,GAC7D,MAAM,YAAY,QAAQ,IAAI,CAAC,GAAG,WAAW,GAAG,mBAAmB,GACnE,MAAM,YAAY,QAAQ,IAAI,CAAC,GAAG,qBAAqB,GAAG,GAAG,GAC7D,MAAM,YAAY,MAAM,IAAI,CAAC,GAAG,MAAM,GAAG,SAAS,GAClD,MAAM,YAAY,OAAO,IAAI,CAAC,GAAG,MAAM,GAAG,mBAAmB,GAC7D,MAAM,YAAY,QAAQ,IAAI,CAAC,GAAG,qBAAqB,GAAG,SAAS,GACnE,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,qBAAqB,GAAG,mBAAmB,GAGxE,MAAM,YAAY,QAAQ,IAAI,CAAC,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,uBAAuB,GAAG,QAAQ,GAE7F;AACX;"}