UNPKG

@tolokoban/tgd

Version:

ToloGameDev library for WebGL2

52 lines 3.98 kB
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