UNPKG

kinetic-slider

Version:

A WebGL-powered kinetic slider component using PIXI.js

58 lines (54 loc) 1.75 kB
'use strict'; var pixi_js = require('pixi.js'); var ShaderResourceManager = require('../managers/ShaderResourceManager.cjs'); function createNoiseFilter(config) { const shaderManager = ShaderResourceManager.ShaderResourceManager.getInstance(); const options = { noise: config.noiseLevel || 0.5, // Default noise level is 0.5 seed: config.seed || Math.random() // Default seed is a random value }; const shaderKey = "noise-filter"; const filter = new pixi_js.NoiseFilter(options); try { shaderManager.registerFilter(filter, shaderKey); } catch (error) { console.warn("Error registering noise filter with shader manager:", error); } const updateIntensity = (intensity) => { filter.noise = Math.max(0, Math.min(10, intensity)) / 10; if (config.generateNewSeedOnUpdate) { filter.seed = Math.random(); } }; updateIntensity(config.intensity); const reset = () => { if (config.noiseLevel !== void 0) { filter.noise = config.noiseLevel; } else if (config.intensity !== void 0) ; else { filter.noise = 0; } if (config.seed !== void 0) { filter.seed = config.seed; } else if (config.generateNewSeedOnUpdate === true) { filter.seed = Math.random(); } else { filter.seed = filter.seed || 0; } if (config.intensity !== void 0) { updateIntensity(config.intensity); } }; const dispose = () => { try { shaderManager.releaseFilter(filter, shaderKey); } catch (error) { console.warn("Error releasing noise filter shader:", error); } filter.destroy(); }; return { filter, updateIntensity, reset, dispose }; } exports.createNoiseFilter = createNoiseFilter; //# sourceMappingURL=noiseFilter.cjs.map