UNPKG

kinetic-slider

Version:

A WebGL-powered kinetic slider component using PIXI.js

61 lines (58 loc) 1.9 kB
import { BlurFilter } from 'pixi.js'; import { ShaderResourceManager } from '../managers/ShaderResourceManager.js'; const shaderManager = ShaderResourceManager.getInstance(); function createBlurFilter(config) { const filter = new BlurFilter({ strength: config.intensity ? config.intensity * 10 : 8, strengthX: config.strengthX ? config.strengthX * 10 : void 0, strengthY: config.strengthY ? config.strengthY * 10 : void 0, quality: config.quality ?? 4, kernelSize: config.kernelSize ?? 5, resolution: config.resolution ?? 1 }); if (config.strengthX !== void 0) { filter.strengthX = config.strengthX; } if (config.strengthY !== void 0) { filter.strengthY = config.strengthY; } if (config.repeatEdgePixels !== void 0) { filter.repeatEdgePixels = config.repeatEdgePixels; } const shaderKey = `blur-${config.quality || 4}-${config.kernelSize || 5}-${config.resolution || 1}`; try { shaderManager.getShaderProgram(shaderKey, filter); } catch (error) { console.warn("Failed to register blur filter with shader manager:", error); } const updateIntensity = (intensity) => { filter.strength = intensity * 10; filter.strengthX = config.strengthX ? config.strengthX * 10 : filter.strength; filter.strengthY = config.strengthY ? config.strengthY * 10 : filter.strength; }; updateIntensity(config.intensity); const reset = () => { filter.strength = 0; filter.strengthX = 0; filter.strengthY = 0; }; const dispose = () => { try { shaderManager.releaseShader(shaderKey); } catch (error) { console.warn("Failed to release blur filter shader:", error); } if (filter.destroy) { filter.destroy(); } }; const result = { filter, updateIntensity, reset, dispose }; return result; } export { createBlurFilter }; //# sourceMappingURL=blurFilter.js.map