UNPKG

@tolokoban/tgd

Version:

ToloGameDev library for WebGL2

44 lines 2.34 kB
/** * Define the shader to be used in a filter. * * A filter is mostly a fragment shader working on a texture. * * Always available varyings: * * `vec2 varUV` * * Always available uniforms: * * `sampler2D texSource`: input texture. * * `float uniWidth`: width of the texture in pixels. * * `float uniHeight`: height of the texture in pixels. */ export class TgdFilter { constructor(options = {}) { /** * If you need more uniforms, define them here. * And set the values in the `setUniforms()` method. */ this.uniforms = {}; /** * The code of a `vec4 applyColor()` function. * Must return a `vec4` color. */ this.fragmentShaderCode = [ "vec4 color = texture(uniTexture, varUV);", "return color;", ]; this.extraFunctions = {}; this.setUniforms = (_parameters) => { }; const { uniforms, fragmentShaderCode, extraFunctions, setUniforms } = options; if (uniforms) this.uniforms = uniforms; if (fragmentShaderCode) this.fragmentShaderCode = fragmentShaderCode; if (extraFunctions) this.extraFunctions = extraFunctions; if (setUniforms) this.setUniforms = setUniforms; } /** Cleanup function. */ delete() { } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ZpbHRlci9maWx0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBS0E7Ozs7Ozs7Ozs7OztHQVlHO0FBQ0gsTUFBTSxPQUFPLFNBQVM7SUFzQmxCLFlBQVksVUFBcUMsRUFBRTtRQXJCbkQ7OztXQUdHO1FBQ2EsYUFBUSxHQUF5QyxFQUFFLENBQUE7UUFFbkU7OztXQUdHO1FBQ2EsdUJBQWtCLEdBQWdCO1lBQzlDLDBDQUEwQztZQUMxQyxlQUFlO1NBQ2xCLENBQUE7UUFFZSxtQkFBYyxHQUFtQyxFQUFFLENBQUE7UUFFbkQsZ0JBQVcsR0FBRyxDQUMxQixXQUEyQyxFQUN2QyxFQUFFLEdBQUUsQ0FBQyxDQUFBO1FBR1QsTUFBTSxFQUFFLFFBQVEsRUFBRSxrQkFBa0IsRUFBRSxjQUFjLEVBQUUsV0FBVyxFQUFFLEdBQy9ELE9BQU8sQ0FBQTtRQUNYLElBQUksUUFBUTtZQUFFLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFBO1FBQ3RDLElBQUksa0JBQWtCO1lBQUUsSUFBSSxDQUFDLGtCQUFrQixHQUFHLGtCQUFrQixDQUFBO1FBQ3BFLElBQUksY0FBYztZQUFFLElBQUksQ0FBQyxjQUFjLEdBQUcsY0FBYyxDQUFBO1FBQ3hELElBQUksV0FBVztZQUFFLElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFBO0lBQ25ELENBQUM7SUFFRCx3QkFBd0I7SUFDeEIsTUFBTSxLQUFJLENBQUM7Q0FDZCJ9