@tolokoban/tgd
Version:
ToloGameDev library for WebGL2
39 lines • 3.72 kB
JavaScript
import { TgdPainter } from "../painter.js";
import { TgdDataset } from "./../../dataset/dataset.js";
import { TgdVertexArray } from "./../../vao/index.js";
import { TgdProgram } from "./../../program/index.js";
import VERT from "./background.vert";
import FRAG from "./background.frag";
export class TgdPainterBackground extends TgdPainter {
constructor(context, { texture } = {}) {
super();
this.context = context;
this.texture = texture;
this.program = new TgdProgram(context.gl, {
vert: VERT,
frag: FRAG,
});
const dataset = new TgdDataset({
attPoint: "vec2",
attUV: "vec2",
});
dataset.set("attPoint", new Float32Array([-1, -1, +1, -1, -1, +1, +1, +1]));
dataset.set("attUV", new Float32Array([0, 0, 1, 0, 0, 1, 1, 1]));
this.vao = new TgdVertexArray(context.gl, this.program, [dataset]);
}
delete() {
const { program, vao } = this;
program.delete();
vao.delete();
}
paint() {
const { gl } = this.context;
const { vao, program, texture } = this;
program.use();
texture === null || texture === void 0 ? void 0 : texture.activate(0, program, "uniTexture");
gl.disable(gl.CULL_FACE);
vao.bind();
gl.drawArrays(gl.TRIANGLE_STRIP, 0, 4);
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFja2dyb3VuZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wYWludGVyL3gtcmF5L2JhY2tncm91bmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUN2QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFDakQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLFVBQVUsQ0FBQTtBQUd6QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFBO0FBRXpDLE9BQU8sSUFBSSxNQUFNLG1CQUFtQixDQUFBO0FBQ3BDLE9BQU8sSUFBSSxNQUFNLG1CQUFtQixDQUFBO0FBTXBDLE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxVQUFVO0lBTWhELFlBQ3FCLE9BQXVDLEVBQ3hELEVBQUUsT0FBTyxLQUEyQyxFQUFFO1FBRXRELEtBQUssRUFBRSxDQUFBO1FBSFUsWUFBTyxHQUFQLE9BQU8sQ0FBZ0M7UUFJeEQsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUE7UUFDdEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLFVBQVUsQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFO1lBQ3RDLElBQUksRUFBRSxJQUFJO1lBQ1YsSUFBSSxFQUFFLElBQUk7U0FDYixDQUFDLENBQUE7UUFDRixNQUFNLE9BQU8sR0FBRyxJQUFJLFVBQVUsQ0FBQztZQUMzQixRQUFRLEVBQUUsTUFBTTtZQUNoQixLQUFLLEVBQUUsTUFBTTtTQUNoQixDQUFDLENBQUE7UUFDRixPQUFPLENBQUMsR0FBRyxDQUNQLFVBQVUsRUFDVixJQUFJLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FDckQsQ0FBQTtRQUNELE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLElBQUksWUFBWSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUNoRSxJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksY0FBYyxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUE7SUFDdEUsQ0FBQztJQUVELE1BQU07UUFDRixNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQTtRQUM3QixPQUFPLENBQUMsTUFBTSxFQUFFLENBQUE7UUFDaEIsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFBO0lBQ2hCLENBQUM7SUFFRCxLQUFLO1FBQ0QsTUFBTSxFQUFFLEVBQUUsRUFBRSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUE7UUFDM0IsTUFBTSxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFBO1FBQ3RDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQTtRQUNiLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxRQUFRLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxZQUFZLENBQUMsQ0FBQTtRQUMzQyxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQTtRQUN4QixHQUFHLENBQUMsSUFBSSxFQUFFLENBQUE7UUFDVixFQUFFLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFBO0lBQzFDLENBQUM7Q0FDSiJ9