pixi.js
Version:
<p align="center"> <a href="https://pixijs.com" target="_blank" rel="noopener noreferrer"> <img height="150" src="https://files.pixijs.download/branding/pixijs-logo-transparent-dark.svg?v=1" alt="PixiJS logo"> </a> </p> <br/> <p align="center">
1 lines • 3.1 kB
Source Map (JSON)
{"version":3,"file":"canUseNewCanvasBlendModes.mjs","sources":["../../../../../src/rendering/renderers/canvas/utils/canUseNewCanvasBlendModes.ts"],"sourcesContent":["import { DOMAdapter } from '../../../../environment/adapter';\n\nimport type { ICanvas } from '../../../../environment/canvas/ICanvas';\n\nlet canUseNewCanvasBlendModesValue: boolean | undefined;\n\nfunction createColoredCanvas(color: string): ICanvas\n{\n const canvas = DOMAdapter.get().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 advanced Canvas blend modes are supported.\n * @returns True if advanced blend modes are available.\n * @internal\n */\nexport function canUseNewCanvasBlendModes(): boolean\n{\n if (canUseNewCanvasBlendModesValue !== undefined)\n {\n return canUseNewCanvasBlendModesValue;\n }\n\n try\n {\n const magenta = createColoredCanvas('#ff00ff');\n const yellow = createColoredCanvas('#ffff00');\n\n const canvas = DOMAdapter.get().createCanvas(6, 1);\n const context = canvas.getContext('2d');\n\n context.globalCompositeOperation = 'multiply';\n context.drawImage(magenta as unknown as CanvasImageSource, 0, 0);\n context.drawImage(yellow as unknown as CanvasImageSource, 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 catch (_error)\n {\n canUseNewCanvasBlendModesValue = false;\n }\n\n return canUseNewCanvasBlendModesValue;\n}\n"],"names":[],"mappings":";;;AAIA,IAAI,8BAAA;AAEJ,SAAS,oBAAoB,KAAA,EAC7B;AACI,EAAA,MAAM,SAAS,UAAA,CAAW,GAAA,EAAI,CAAE,YAAA,CAAa,GAAG,CAAC,CAAA;AACjD,EAAA,MAAM,OAAA,GAAU,MAAA,CAAO,UAAA,CAAW,IAAI,CAAA;AAEtC,EAAA,OAAA,CAAQ,SAAA,GAAY,KAAA;AACpB,EAAA,OAAA,CAAQ,QAAA,CAAS,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG,CAAC,CAAA;AAE3B,EAAA,OAAO,MAAA;AACX;AAOO,SAAS,yBAAA,GAChB;AACI,EAAA,IAAI,mCAAmC,KAAA,CAAA,EACvC;AACI,IAAA,OAAO,8BAAA;AAAA,EACX;AAEA,EAAA,IACA;AACI,IAAA,MAAM,OAAA,GAAU,oBAAoB,SAAS,CAAA;AAC7C,IAAA,MAAM,MAAA,GAAS,oBAAoB,SAAS,CAAA;AAE5C,IAAA,MAAM,SAAS,UAAA,CAAW,GAAA,EAAI,CAAE,YAAA,CAAa,GAAG,CAAC,CAAA;AACjD,IAAA,MAAM,OAAA,GAAU,MAAA,CAAO,UAAA,CAAW,IAAI,CAAA;AAEtC,IAAA,OAAA,CAAQ,wBAAA,GAA2B,UAAA;AACnC,IAAA,OAAA,CAAQ,SAAA,CAAU,OAAA,EAAyC,CAAA,EAAG,CAAC,CAAA;AAC/D,IAAA,OAAA,CAAQ,SAAA,CAAU,MAAA,EAAwC,CAAA,EAAG,CAAC,CAAA;AAE9D,IAAA,MAAM,YAAY,OAAA,CAAQ,YAAA,CAAa,CAAA,EAAG,CAAA,EAAG,GAAG,CAAC,CAAA;AAEjD,IAAA,IAAI,CAAC,SAAA,EACL;AACI,MAAA,8BAAA,GAAiC,KAAA;AAAA,IACrC,CAAA,MAEA;AACI,MAAA,MAAM,OAAO,SAAA,CAAU,IAAA;AAEvB,MAAA,8BAAA,GAAkC,IAAA,CAAK,CAAC,CAAA,KAAM,GAAA,IAAO,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,IAAK,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA;AAAA,IACtF;AAAA,EACJ,SACO,MAAA,EACP;AACI,IAAA,8BAAA,GAAiC,KAAA;AAAA,EACrC;AAEA,EAAA,OAAO,8BAAA;AACX;;;;"}