UNPKG

@tolokoban/tgd

Version:

ToloGameDev library for WebGL2

59 lines 5.06 kB
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