@tolokoban/tgd
Version:
ToloGameDev library for WebGL2
25 lines • 1.95 kB
JavaScript
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