UNPKG

kinetic-slider

Version:

A WebGL-powered kinetic slider component using PIXI.js

59 lines (55 loc) 2.1 kB
'use strict'; var pixiFilters = require('pixi-filters'); var ShaderResourceManager = require('../managers/ShaderResourceManager.cjs'); function createBackdropBlurFilter(config) { const shaderManager = ShaderResourceManager.ShaderResourceManager.getInstance(); const shaderKey = `backdrop-blur-filter-q${config.quality || 4}-k${config.kernelSize || 5}`; const filter = new pixiFilters.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 }; } exports.createBackdropBlurFilter = createBackdropBlurFilter; //# sourceMappingURL=backdropBlurFilter.cjs.map