UNPKG

@tolokoban/tgd

Version:

ToloGameDev library for WebGL2

26 lines 1.98 kB
import { TgdVec2 } from "../math/index.js"; import { TgdFilter } from "./filter.js"; export class TgdFilterZoom extends TgdFilter { constructor({ zoom = 1 } = {}) { super({ name: `TgdFilterZoom/${TgdFilter.id++}`, fragmentShaderCode: [ "vec2 uv = (varUV - vec2(0.5)) * uniZoom + uniTranslation + 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.uniform2fv("uniTranslation", this.translation); }; this.zoom = zoom; this.translation = new TgdVec2(); } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiem9vbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9maWx0ZXIvem9vbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sU0FBUyxDQUFBO0FBQ2pDLE9BQU8sRUFBRSxTQUFTLEVBQW9FLE1BQU0sVUFBVSxDQUFBO0FBRXRHLE1BQU0sT0FBTyxhQUFjLFNBQVEsU0FBUztJQUl4QyxZQUFZLEVBQUUsSUFBSSxHQUFHLENBQUMsS0FBZ0MsRUFBRTtRQUNwRCxLQUFLLENBQUM7WUFDRixJQUFJLEVBQUUsaUJBQWlCLFNBQVMsQ0FBQyxFQUFFLEVBQUUsRUFBRTtZQUN2QyxrQkFBa0IsRUFBRTtnQkFDaEIsdUVBQXVFO2dCQUN2RSx1Q0FBdUM7Z0JBQ3ZDLG9CQUFvQjthQUN2QjtZQUNELFFBQVEsRUFBRTtnQkFDTixPQUFPLEVBQUUsT0FBTztnQkFDaEIsY0FBYyxFQUFFLE1BQU07YUFDekI7U0FDSixDQUFDLENBQUE7UUFmQyxTQUFJLEdBQUcsQ0FBQyxDQUFBO1FBb0JDLGdCQUFXLEdBQUcsQ0FBQyxFQUFFLE9BQU8sRUFBa0MsRUFBUSxFQUFFO1lBQ2hGLE9BQU8sQ0FBQyxTQUFTLENBQUMsU0FBUyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7WUFDM0MsT0FBTyxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUE7UUFDMUQsQ0FBQyxDQUFBO1FBUEcsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUE7UUFDaEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFBO0lBQ3BDLENBQUM7Q0FNSiJ9