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.min.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":"kSAQA,IAAI,EAKJ,SAAgB,GAAA,CACd,GAAA,CAAM,WAAE,GAAe,GAAA,CAEvB,OADA,EAAW,WAAW,GAAA,CAAA,CAClB,EAAO,mBAAqB,EAAW,YAAY,EAAO,YAAA,CACrD,IAAI,EAAmB,CAAE,SAAU,EAAO,YAAA,CAAA,CAE1C,IAAI,EASf,SAAgB,EAAiB,EAAA,CAAS,EAAA,CAIxC,MAAA,CAHK,GAAiB,IACpB,EAAgB,GAAA,EAEX,EAGT,SAAgB,EAAiB,EAAA,CAC/B,EAAgB,EAAA,OAAA,KAAA,iBAAA,KAAA,kBAAA,KAAA"}