UNPKG

kinetic-slider

Version:

A WebGL-powered kinetic slider component using PIXI.js

57 lines (54 loc) 2.03 kB
import { BackdropBlurFilter } from 'pixi-filters'; import { ShaderResourceManager } from '../managers/ShaderResourceManager.js'; function createBackdropBlurFilter(config) { const shaderManager = ShaderResourceManager.getInstance(); const shaderKey = `backdrop-blur-filter-q${config.quality || 4}-k${config.kernelSize || 5}`; const filter = new BackdropBlurFilter({ strength: config.intensity ? config.intensity * 10 : 8, quality: config.quality ?? 4, kernelSize: config.kernelSize ?? 5, resolution: config.resolution ?? 1 }); try { shaderManager.registerFilter(filter, shaderKey); } catch (error) { console.warn("Error registering backdrop blur filter with shader manager:", error); } if (config.repeatEdgePixels !== void 0) { filter.repeatEdgePixels = config.repeatEdgePixels; } const updateIntensity = (intensity) => { filter.strength = intensity * 10; }; updateIntensity(config.intensity); const reset = () => { const defaultStrength = config.intensity !== void 0 ? config.intensity * 10 : 8; filter.strength = defaultStrength; if (config.quality !== void 0 && "quality" in filter) { filter.quality = config.quality; } if (config.kernelSize !== void 0 && "kernelSize" in filter) { filter.kernelSize = config.kernelSize; } if (config.resolution !== void 0 && "resolution" in filter) { filter.resolution = config.resolution; } if (config.repeatEdgePixels !== void 0 && "repeatEdgePixels" in filter) { filter.repeatEdgePixels = config.repeatEdgePixels; } if (config.intensity !== void 0) { updateIntensity(config.intensity); } }; const dispose = () => { try { shaderManager.releaseFilter(filter, shaderKey); } catch (error) { console.warn("Error releasing backdrop blur filter shader:", error); } filter.destroy(); }; return { filter, updateIntensity, reset, dispose }; } export { createBackdropBlurFilter }; //# sourceMappingURL=backdropBlurFilter.js.map