fabric
Version:
Object model for HTML5 canvas, and SVG-to-canvas parser. Backed by jsdom and node-canvas.
32 lines (31 loc) • 1.3 kB
JavaScript
import { config } from "../config.mjs";
import { getEnv } from "../env/index.mjs";
import { createCanvasElement } from "../util/misc/dom.mjs";
import { Canvas2dFilterBackend } from "./Canvas2dFilterBackend.mjs";
import { WebGLFilterBackend } from "./WebGLFilterBackend.mjs";
//#region src/filters/FilterBackend.ts
let filterBackend;
/**
* Verifies if it is possible to initialize webgl or fallback on a canvas2d filtering backend
*/
function initFilterBackend() {
const { WebGLProbe } = getEnv();
WebGLProbe.queryWebGL(createCanvasElement());
if (config.enableGLFiltering && WebGLProbe.isSupported(config.textureSize)) return new WebGLFilterBackend({ tileSize: config.textureSize });
else return new Canvas2dFilterBackend();
}
/**
* Get the current fabricJS filter backend or initialize one if not available yet
* @param [strict] pass `true` to create the backend if it wasn't created yet (default behavior),
* pass `false` to get the backend ref without mutating it
*/
function getFilterBackend(strict = true) {
if (!filterBackend && strict) filterBackend = initFilterBackend();
return filterBackend;
}
function setFilterBackend(backend) {
filterBackend = backend;
}
//#endregion
export { getFilterBackend, initFilterBackend, setFilterBackend };
//# sourceMappingURL=FilterBackend.mjs.map