kinetic-slider
Version:
A WebGL-powered kinetic slider component using PIXI.js
49 lines (45 loc) • 1.57 kB
JavaScript
;
var pixiFilters = require('pixi-filters');
var ShaderResourceManager = require('../managers/ShaderResourceManager.cjs');
function createCrossHatchFilter(config) {
const shaderManager = ShaderResourceManager.ShaderResourceManager.getInstance();
const shaderKey = `cross-hatch-filter`;
const filter = new pixiFilters.CrossHatchFilter();
try {
shaderManager.registerFilter(filter, shaderKey);
} catch (error) {
console.warn("Error registering cross hatch filter with shader manager:", error);
}
const updateIntensity = (intensity) => {
const normalizedIntensity = Math.max(0, Math.min(10, intensity));
if ("alpha" in filter) {
filter.alpha = normalizedIntensity / 10;
}
};
updateIntensity(config.intensity);
const reset = () => {
if ("alpha" in filter) {
filter.alpha = config.alpha !== void 0 ? config.alpha : 1;
}
if ("enabled" in filter) {
filter.enabled = config.enabled !== void 0 ? config.enabled : true;
}
if (config.intensity !== void 0) {
updateIntensity(config.intensity);
config.intensity > 0;
} else {
config.alpha !== void 0 ? config.alpha > 0 : false;
}
};
const dispose = () => {
try {
shaderManager.releaseFilter(filter, shaderKey);
} catch (error) {
console.warn("Error releasing cross hatch filter shader:", error);
}
filter.destroy();
};
return { filter, updateIntensity, reset, dispose };
}
exports.createCrossHatchFilter = createCrossHatchFilter;
//# sourceMappingURL=crossHatchFilter.cjs.map