{"version":3,"file":"canUseNewCanvasBlendModes.mjs","sources":["../../src/utils/canUseNewCanvasBlendModes.ts"],"sourcesContent":["import { settings } from '@pixi/core';\n\nimport type { ICanvas } from '@pixi/core';\n\nlet canUseNewCanvasBlendModesValue: boolean | undefined;\n\n/**\n * Creates a little colored canvas\n * @ignore\n * @param {string} color - The color to make the canvas\n * @returns {PIXI.ICanvas} a small canvas element\n */\nfunction createColoredCanvas(color: string): ICanvas\n{\n    const canvas = settings.ADAPTER.createCanvas(6, 1);\n    const context = canvas.getContext('2d');\n\n    context.fillStyle = color;\n    context.fillRect(0, 0, 6, 1);\n\n    return canvas;\n}\n\n/**\n * Checks whether the Canvas BlendModes are supported by the current browser\n * @private\n * @returns {boolean} whether they are supported\n */\nexport function canUseNewCanvasBlendModes(): boolean\n{\n    if (typeof document === 'undefined')\n    {\n        return false;\n    }\n\n    if (canUseNewCanvasBlendModesValue !== undefined)\n    {\n        return canUseNewCanvasBlendModesValue;\n    }\n\n    const magenta = createColoredCanvas('#ff00ff');\n    const yellow = createColoredCanvas('#ffff00');\n\n    const canvas = settings.ADAPTER.createCanvas(6, 1);\n    const context = canvas.getContext('2d');\n\n    context.globalCompositeOperation = 'multiply';\n    context.drawImage(magenta, 0, 0);\n    context.drawImage(yellow, 2, 0);\n\n    const imageData = context.getImageData(2, 0, 1, 1);\n\n    if (!imageData)\n    {\n        canUseNewCanvasBlendModesValue = false;\n    }\n    else\n    {\n        const data = imageData.data;\n\n        canUseNewCanvasBlendModesValue = (data[0] === 255 && data[1] === 0 && data[2] === 0);\n    }\n\n    return canUseNewCanvasBlendModesValue;\n}\n"],"names":[],"mappings":";AAIA,IAAI;AAQJ,SAAS,oBAAoB,OAC7B;AACU,QAAA,SAAS,SAAS,QAAQ,aAAa,GAAG,CAAC,GAC3C,UAAU,OAAO,WAAW,IAAI;AAE9B,SAAA,QAAA,YAAY,OACpB,QAAQ,SAAS,GAAG,GAAG,GAAG,CAAC,GAEpB;AACX;AAOO,SAAS,4BAChB;AACI,MAAI,OAAO,WAAa;AAEb,WAAA;AAGX,MAAI,mCAAmC;AAE5B,WAAA;AAGX,QAAM,UAAU,oBAAoB,SAAS,GACvC,SAAS,oBAAoB,SAAS,GAGtC,UADS,SAAS,QAAQ,aAAa,GAAG,CAAC,EAC1B,WAAW,IAAI;AAEtC,UAAQ,2BAA2B,YACnC,QAAQ,UAAU,SAAS,GAAG,CAAC,GAC/B,QAAQ,UAAU,QAAQ,GAAG,CAAC;AAE9B,QAAM,YAAY,QAAQ,aAAa,GAAG,GAAG,GAAG,CAAC;AAEjD,MAAI,CAAC;AAEgC,qCAAA;AAAA,OAGrC;AACI,UAAM,OAAO,UAAU;AAEW,qCAAA,KAAK,CAAC,MAAM,OAAO,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM;AAAA,EACtF;AAEO,SAAA;AACX;"}