UNPKG

@figliolia/ripples

Version:

WebGL ripples based on the clever work of Pim Schreurs

50 lines (49 loc) 1.49 kB
export class Options { resolution; dropRadius; perturbance; crossOrigin; interactive; imageUrl; onInitialized; constructor(options) { const configuration = this.configure(options); this.imageUrl = configuration.imageUrl; this.dropRadius = configuration.dropRadius; this.interactive = configuration.interactive; this.perturbance = configuration.perturbance; this.crossOrigin = configuration.crossOrigin; this.onInitialized = configuration.onInitialized; this.resolution = this.extractResolution(configuration.resolution); } static defaults = { imageUrl: null, resolution: 512, dropRadius: 10, perturbance: 0.02, interactive: true, crossOrigin: "", }; configure(options) { return Object.assign({}, Options.defaults, options); } extractResolution(resolution) { if (typeof resolution === "number") { return resolution; } if (typeof window.devicePixelRatio === "number") { return Math.max(Options.defaults.resolution, 256 * window.devicePixelRatio); } return Options.defaults.resolution; } extractUrl(value) { const urlMatch = /url\(["']?([^"']*)["']?\)/.exec(value); if (urlMatch == null) { return null; } return urlMatch[1]; } isDataUri(url) { return url.match(/^data:/); } }