UNPKG

@tolokoban/tgd

Version:

ToloGameDev library for WebGL2

25 lines 1.95 kB
import { TgdVec2 } from "../math/index.js"; import { TgdFilter, } from "./filter.js"; export class TgdFilterZoom extends TgdFilter { constructor({ zoom = 1 } = {}) { super({ fragmentShaderCode: [ "vec2 uv = (varUV - vec2(0.5) - uniTranslation) * uniZoom + vec2(0.5);", "vec4 color = texture(uniTexture, uv);", "FragColor = color;", ], uniforms: { uniZoom: "float", uniTranslation: "vec2", }, }); this.zoom = 1; this.setUniforms = ({ program, }) => { program.uniform1f("uniZoom", 1 / this.zoom); program.uniform2f("uniTranslation", this.translation.x, this.translation.y); }; this.zoom = zoom; this.translation = new TgdVec2(); } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiem9vbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9maWx0ZXIvem9vbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sU0FBUyxDQUFBO0FBQ2pDLE9BQU8sRUFDSCxTQUFTLEdBRVosTUFBTSxVQUFVLENBQUE7QUFFakIsTUFBTSxPQUFPLGFBQWMsU0FBUSxTQUFTO0lBSXhDLFlBQVksRUFBRSxJQUFJLEdBQUcsQ0FBQyxLQUFnQyxFQUFFO1FBQ3BELEtBQUssQ0FBQztZQUNGLGtCQUFrQixFQUFFO2dCQUNoQix1RUFBdUU7Z0JBQ3ZFLHVDQUF1QztnQkFDdkMsb0JBQW9CO2FBQ3ZCO1lBQ0QsUUFBUSxFQUFFO2dCQUNOLE9BQU8sRUFBRSxPQUFPO2dCQUNoQixjQUFjLEVBQUUsTUFBTTthQUN6QjtTQUNKLENBQUMsQ0FBQTtRQWRDLFNBQUksR0FBRyxDQUFDLENBQUE7UUFtQkMsZ0JBQVcsR0FBRyxDQUFDLEVBQzNCLE9BQU8sR0FDc0IsRUFBUSxFQUFFO1lBQ3ZDLE9BQU8sQ0FBQyxTQUFTLENBQUMsU0FBUyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7WUFDM0MsT0FBTyxDQUFDLFNBQVMsQ0FDYixnQkFBZ0IsRUFDaEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLEVBQ2xCLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUNyQixDQUFBO1FBQ0wsQ0FBQyxDQUFBO1FBYkcsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUE7UUFDaEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFBO0lBQ3BDLENBQUM7Q0FZSiJ9