@pixi/core
Version:
Core PixiJS
1 lines • 6.06 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":"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"}