fabric
Version:
Object model for HTML5 canvas, and SVG-to-canvas parser. Backed by jsdom and node-canvas.
1 lines • 1.82 kB
Source Map (JSON)
{"version":3,"file":"FilterBackend.mjs","names":[],"sources":["../../../src/filters/FilterBackend.ts"],"sourcesContent":["import { config } from '../config';\nimport { getEnv } from '../env';\nimport { createCanvasElement } from '../util/misc/dom';\nimport { Canvas2dFilterBackend } from './Canvas2dFilterBackend';\nimport { WebGLFilterBackend } from './WebGLFilterBackend';\n\nexport type FilterBackend = WebGLFilterBackend | Canvas2dFilterBackend;\n\nlet filterBackend: FilterBackend;\n\n/**\n * Verifies if it is possible to initialize webgl or fallback on a canvas2d filtering backend\n */\nexport function initFilterBackend(): FilterBackend {\n const { WebGLProbe } = getEnv();\n WebGLProbe.queryWebGL(createCanvasElement());\n if (config.enableGLFiltering && WebGLProbe.isSupported(config.textureSize)) {\n return new WebGLFilterBackend({ tileSize: config.textureSize });\n } else {\n return new Canvas2dFilterBackend();\n }\n}\n\n/**\n * Get the current fabricJS filter backend or initialize one if not available yet\n * @param [strict] pass `true` to create the backend if it wasn't created yet (default behavior),\n * pass `false` to get the backend ref without mutating it\n */\nexport function getFilterBackend(strict = true): FilterBackend {\n if (!filterBackend && strict) {\n filterBackend = initFilterBackend();\n }\n return filterBackend;\n}\n\nexport function setFilterBackend(backend: FilterBackend) {\n filterBackend = backend;\n}\n"],"mappings":";;;;;;AAQA,IAAI;;;;AAKJ,SAAgB,oBAAmC;CACjD,MAAM,EAAE,eAAe,QAAQ;AAC/B,YAAW,WAAW,qBAAqB,CAAC;AAC5C,KAAI,OAAO,qBAAqB,WAAW,YAAY,OAAO,YAAY,CACxE,QAAO,IAAI,mBAAmB,EAAE,UAAU,OAAO,aAAa,CAAC;KAE/D,QAAO,IAAI,uBAAuB;;;;;;;AAStC,SAAgB,iBAAiB,SAAS,MAAqB;AAC7D,KAAI,CAAC,iBAAiB,OACpB,iBAAgB,mBAAmB;AAErC,QAAO;;AAGT,SAAgB,iBAAiB,SAAwB;AACvD,iBAAgB"}