Newer
Older
pixi.js / src / core / renderers / canvas / utils / mapCanvasBlendModesToPixi.js
@Steffen Bär Steffen Bär on 20 Sep 2016 2 KB some more es6 changes (#2969)
import CONST from '../../../const';
import canUseNewCanvasBlendModes from './canUseNewCanvasBlendModes';

/**
 * Maps blend combinations to Canvas
 * @class
 * @memberof PIXI
 * @param [array=[]] {array}
 */
function mapCanvasBlendModesToPixi(array=[])
{
    if (canUseNewCanvasBlendModes())
    {
        array[CONST.BLEND_MODES.NORMAL]        = 'source-over';
        array[CONST.BLEND_MODES.ADD]           = 'lighter'; //IS THIS OK???
        array[CONST.BLEND_MODES.MULTIPLY]      = 'multiply';
        array[CONST.BLEND_MODES.SCREEN]        = 'screen';
        array[CONST.BLEND_MODES.OVERLAY]       = 'overlay';
        array[CONST.BLEND_MODES.DARKEN]        = 'darken';
        array[CONST.BLEND_MODES.LIGHTEN]       = 'lighten';
        array[CONST.BLEND_MODES.COLOR_DODGE]   = 'color-dodge';
        array[CONST.BLEND_MODES.COLOR_BURN]    = 'color-burn';
        array[CONST.BLEND_MODES.HARD_LIGHT]    = 'hard-light';
        array[CONST.BLEND_MODES.SOFT_LIGHT]    = 'soft-light';
        array[CONST.BLEND_MODES.DIFFERENCE]    = 'difference';
        array[CONST.BLEND_MODES.EXCLUSION]     = 'exclusion';
        array[CONST.BLEND_MODES.HUE]           = 'hue';
        array[CONST.BLEND_MODES.SATURATION]    = 'saturate';
        array[CONST.BLEND_MODES.COLOR]         = 'color';
        array[CONST.BLEND_MODES.LUMINOSITY]    = 'luminosity';
    }
    else
    {
        // this means that the browser does not support the cool new blend modes in canvas 'cough' ie 'cough'
        array[CONST.BLEND_MODES.NORMAL]        = 'source-over';
        array[CONST.BLEND_MODES.ADD]           = 'lighter'; //IS THIS OK???
        array[CONST.BLEND_MODES.MULTIPLY]      = 'source-over';
        array[CONST.BLEND_MODES.SCREEN]        = 'source-over';
        array[CONST.BLEND_MODES.OVERLAY]       = 'source-over';
        array[CONST.BLEND_MODES.DARKEN]        = 'source-over';
        array[CONST.BLEND_MODES.LIGHTEN]       = 'source-over';
        array[CONST.BLEND_MODES.COLOR_DODGE]   = 'source-over';
        array[CONST.BLEND_MODES.COLOR_BURN]    = 'source-over';
        array[CONST.BLEND_MODES.HARD_LIGHT]    = 'source-over';
        array[CONST.BLEND_MODES.SOFT_LIGHT]    = 'source-over';
        array[CONST.BLEND_MODES.DIFFERENCE]    = 'source-over';
        array[CONST.BLEND_MODES.EXCLUSION]     = 'source-over';
        array[CONST.BLEND_MODES.HUE]           = 'source-over';
        array[CONST.BLEND_MODES.SATURATION]    = 'source-over';
        array[CONST.BLEND_MODES.COLOR]         = 'source-over';
        array[CONST.BLEND_MODES.LUMINOSITY]    = 'source-over';
    }

    return array;
}

export default mapCanvasBlendModesToPixi;