@tolokoban/tgd
Version:
ToloGameDev library for WebGL2
52 lines • 3.98 kB
JavaScript
import { TgdPainter } from "./../../painter.js";
import { TgdProgram } from "./../../../program/index.js";
import { TgdShaderFragment, TgdShaderVertex } from "./../../../shader/index.js";
import { TgdVec4 } from "./../../../index.js";
export class TgdPainterDebugPoint extends TgdPainter {
constructor(context) {
super();
this.context = context;
this.color = new TgdVec4(1, 1, 1, 1);
this.size = 16;
this.x = 0;
this.y = 0;
this.z = 0.5;
this.w = 1;
this.prg = new TgdProgram(context.gl, {
vert: new TgdShaderVertex({
uniforms: {
x: "float",
y: "float",
z: "float",
w: "float",
size: "float",
},
mainCode: ["gl_Position = vec4(x, y, z, w);", "gl_PointSize = size;"],
}).code,
frag: new TgdShaderFragment({
uniforms: {
color: "vec4",
},
outputs: {
FragColor: "vec4",
},
mainCode: ["FragColor = color;"],
}).code,
});
}
delete() {
this.prg.delete();
}
paint() {
const { prg, context } = this;
prg.use();
prg.uniform1f("x", this.x);
prg.uniform1f("y", this.y);
prg.uniform1f("z", this.z);
prg.uniform1f("w", this.w);
prg.uniform1f("size", this.size);
prg.uniform4fv("color", this.color);
context.gl.drawArrays(context.gl.POINTS, 0, 1);
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9pbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvcGFpbnRlci9kZWJ1Zy9wb2ludC9wb2ludC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFDakQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUN6QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsZUFBZSxFQUFFLE1BQU0sYUFBYSxDQUFBO0FBQ2hFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUV4QyxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsVUFBVTtJQVVoRCxZQUE0QixPQUFtQjtRQUMzQyxLQUFLLEVBQUUsQ0FBQTtRQURpQixZQUFPLEdBQVAsT0FBTyxDQUFZO1FBVC9CLFVBQUssR0FBRyxJQUFJLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQTtRQUN4QyxTQUFJLEdBQUcsRUFBRSxDQUFBO1FBQ1QsTUFBQyxHQUFHLENBQUMsQ0FBQTtRQUNMLE1BQUMsR0FBRyxDQUFDLENBQUE7UUFDTCxNQUFDLEdBQUcsR0FBRyxDQUFBO1FBQ1AsTUFBQyxHQUFHLENBQUMsQ0FBQTtRQU1SLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxVQUFVLENBQUMsT0FBTyxDQUFDLEVBQUUsRUFBRTtZQUNsQyxJQUFJLEVBQUUsSUFBSSxlQUFlLENBQUM7Z0JBQ3RCLFFBQVEsRUFBRTtvQkFDTixDQUFDLEVBQUUsT0FBTztvQkFDVixDQUFDLEVBQUUsT0FBTztvQkFDVixDQUFDLEVBQUUsT0FBTztvQkFDVixDQUFDLEVBQUUsT0FBTztvQkFDVixJQUFJLEVBQUUsT0FBTztpQkFDaEI7Z0JBQ0QsUUFBUSxFQUFFLENBQUMsaUNBQWlDLEVBQUUsc0JBQXNCLENBQUM7YUFDeEUsQ0FBQyxDQUFDLElBQUk7WUFDUCxJQUFJLEVBQUUsSUFBSSxpQkFBaUIsQ0FBQztnQkFDeEIsUUFBUSxFQUFFO29CQUNOLEtBQUssRUFBRSxNQUFNO2lCQUNoQjtnQkFDRCxPQUFPLEVBQUU7b0JBQ0wsU0FBUyxFQUFFLE1BQU07aUJBQ3BCO2dCQUNELFFBQVEsRUFBRSxDQUFDLG9CQUFvQixDQUFDO2FBQ25DLENBQUMsQ0FBQyxJQUFJO1NBQ1YsQ0FBQyxDQUFBO0lBQ04sQ0FBQztJQUVELE1BQU07UUFDRixJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFBO0lBQ3JCLENBQUM7SUFFRCxLQUFLO1FBQ0QsTUFBTSxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUE7UUFDN0IsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFBO1FBQ1QsR0FBRyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQzFCLEdBQUcsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUMxQixHQUFHLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFDMUIsR0FBRyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQzFCLEdBQUcsQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUNoQyxHQUFHLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDbkMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFBO0lBQ2xELENBQUM7Q0FDSiJ9