@tolokoban/tgd
Version:
ToloGameDev library for WebGL2
59 lines • 5.06 kB
JavaScript
import { TgdTexture2D } from "./../../texture/index.js";
import { webglPresetBlend, webglPresetCull, webglPresetDepth } from "./../../utils/index.js";
import { TgdMaterialGhost } from "./../../material/index.js";
import { TgdPainterMesh } from "../mesh/index.js";
import { TgdPainter } from "../painter.js";
import { TgdPainterState } from "../state/index.js";
import { TgdPainterClear } from "../clear.js";
import { TgdPainterBackground } from "./background.js";
import { TgdPainterFramebufferWithAntiAliasing } from "../framebuffer-msaa.js";
export class TgdPainterXRay extends TgdPainter {
constructor(context, options) {
super();
this.context = context;
this.texture = new TgdTexture2D(context);
const material = new TgdMaterialGhost(options);
this.painterMesh = new TgdPainterMesh(context, {
geometry: options.geometry,
material,
});
this.painterState = new TgdPainterState(context, {
depth: webglPresetDepth.less,
cull: webglPresetCull.back,
children: [this.painterMesh],
});
this.painterClear = new TgdPainterClear(context, {
color: [0, 0, 0, 1],
depth: 1,
});
this.painterFB = new TgdPainterFramebufferWithAntiAliasing(context, {
depthBuffer: true,
children: [this.painterClear, this.painterState],
textureColor0: this.texture,
});
this.painterBackground = new TgdPainterBackground(context, {
texture: this.texture,
});
}
delete() {
this.painterMesh.delete();
this.painterFB.delete();
this.painterClear.delete();
this.painterState.delete();
this.painterBackground.delete();
this.texture.delete();
}
paint(time, delay) {
const { context, painterFB, painterBackground } = this;
painterFB.paint(time, delay);
TgdPainterState.do({
gl: context.gl,
blend: webglPresetBlend.add,
depth: webglPresetDepth.off,
cull: webglPresetCull.off,
}, () => {
painterBackground.paint();
});
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieC1yYXkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcGFpbnRlci94LXJheS94LXJheS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sY0FBYyxDQUFBO0FBQzNDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFDaEYsT0FBTyxFQUFFLGdCQUFnQixFQUEyQixNQUFNLGVBQWUsQ0FBQTtBQUN6RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sU0FBUyxDQUFBO0FBQ3hDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFDdkMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLFVBQVUsQ0FBQTtBQUMxQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sVUFBVSxDQUFBO0FBQzFDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUNuRCxPQUFPLEVBQUUscUNBQXFDLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQU8zRSxNQUFNLE9BQU8sY0FBZSxTQUFRLFVBQVU7SUFRMUMsWUFDcUIsT0FBbUIsRUFDcEMsT0FBOEI7UUFFOUIsS0FBSyxFQUFFLENBQUE7UUFIVSxZQUFPLEdBQVAsT0FBTyxDQUFZO1FBSXBDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUE7UUFDeEMsTUFBTSxRQUFRLEdBQUcsSUFBSSxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQTtRQUM5QyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksY0FBYyxDQUFDLE9BQU8sRUFBRTtZQUMzQyxRQUFRLEVBQUUsT0FBTyxDQUFDLFFBQVE7WUFDMUIsUUFBUTtTQUNYLENBQUMsQ0FBQTtRQUNGLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxlQUFlLENBQUMsT0FBTyxFQUFFO1lBQzdDLEtBQUssRUFBRSxnQkFBZ0IsQ0FBQyxJQUFJO1lBQzVCLElBQUksRUFBRSxlQUFlLENBQUMsSUFBSTtZQUMxQixRQUFRLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDO1NBQy9CLENBQUMsQ0FBQTtRQUNGLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxlQUFlLENBQUMsT0FBTyxFQUFFO1lBQzdDLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNuQixLQUFLLEVBQUUsQ0FBQztTQUNYLENBQUMsQ0FBQTtRQUNGLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxxQ0FBcUMsQ0FBQyxPQUFPLEVBQUU7WUFDaEUsV0FBVyxFQUFFLElBQUk7WUFDakIsUUFBUSxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDO1lBQ2hELGFBQWEsRUFBRSxJQUFJLENBQUMsT0FBTztTQUM5QixDQUFDLENBQUE7UUFDRixJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxvQkFBb0IsQ0FBQyxPQUFPLEVBQUU7WUFDdkQsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO1NBQ3hCLENBQUMsQ0FBQTtJQUNOLENBQUM7SUFFRCxNQUFNO1FBQ0YsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsQ0FBQTtRQUN6QixJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFBO1FBQ3ZCLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLENBQUE7UUFDMUIsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsQ0FBQTtRQUMxQixJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxFQUFFLENBQUE7UUFDL0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQTtJQUN6QixDQUFDO0lBRUQsS0FBSyxDQUFDLElBQVksRUFBRSxLQUFhO1FBQzdCLE1BQU0sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLEdBQUcsSUFBSSxDQUFBO1FBQ3RELFNBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFBO1FBQzVCLGVBQWUsQ0FBQyxFQUFFLENBQ2Q7WUFDSSxFQUFFLEVBQUUsT0FBTyxDQUFDLEVBQUU7WUFDZCxLQUFLLEVBQUUsZ0JBQWdCLENBQUMsR0FBRztZQUMzQixLQUFLLEVBQUUsZ0JBQWdCLENBQUMsR0FBRztZQUMzQixJQUFJLEVBQUUsZUFBZSxDQUFDLEdBQUc7U0FDNUIsRUFDRCxHQUFHLEVBQUU7WUFDRCxpQkFBaUIsQ0FBQyxLQUFLLEVBQUUsQ0FBQTtRQUM3QixDQUFDLENBQ0osQ0FBQTtJQUNMLENBQUM7Q0FDSiJ9