UNPKG

@tolokoban/tgd

Version:

ToloGameDev library for WebGL2

43 lines 4.17 kB
import { TgdTexture2D } from "./texture2d.js"; export class TgdTextureDepth extends TgdTexture2D { constructor(context, { width = 1, height = 1, format = "DEPTH_COMPONENT24 / DEPTH_COMPONENT / UNSIGNED_INT", } = {}) { super(context, { storage: { width, height, format }, }); this.context = context; this.resize16 = (width, height) => { const { context } = this; const { gl } = context; this.bind(); gl.texImage2D(gl.TEXTURE_2D, 0, gl.DEPTH_COMPONENT16, width, height, 0, gl.DEPTH_COMPONENT, gl.UNSIGNED_SHORT, null); }; this.resize24 = (width, height) => { const { context } = this; const { gl } = context; this.bind(); gl.texImage2D(gl.TEXTURE_2D, 0, gl.DEPTH_COMPONENT24, width, height, 0, gl.DEPTH_COMPONENT, gl.UNSIGNED_INT, null); }; this.resize32F = (width, height) => { const { context } = this; const { gl } = context; this.bind(); gl.texImage2D(gl.TEXTURE_2D, 0, gl.DEPTH_COMPONENT32F, width, height, 0, gl.DEPTH_COMPONENT, gl.FLOAT, null); }; this.setParams({ magFilter: "NEAREST", minFilter: "NEAREST", wrapS: "CLAMP_TO_EDGE", wrapT: "CLAMP_TO_EDGE", }); if (format.startsWith("DEPTH_COMPONENT16")) { this.resize = this.resize16; } else if (format.startsWith("DEPTH_COMPONENT24")) { this.resize = this.resize24; } else { this.resize = this.resize32F; } } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dHVyZS1kZXB0aC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90ZXh0dXJlL3RleHR1cmUtZGVwdGgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQWUxQyxNQUFNLE9BQU8sZUFBZ0IsU0FBUSxZQUFZO0lBQzdDLFlBQ29CLE9BQW1CLEVBQ25DLEVBQ0ksS0FBSyxHQUFHLENBQUMsRUFDVCxNQUFNLEdBQUcsQ0FBQyxFQUNWLE1BQU0sR0FBRyxvREFBb0QsTUFDNUIsRUFBRTtRQUV2QyxLQUFLLENBQUMsT0FBTyxFQUFFO1lBQ1gsT0FBTyxFQUFFLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUU7U0FDckMsQ0FBQyxDQUFBO1FBVGMsWUFBTyxHQUFQLE9BQU8sQ0FBWTtRQTJCdEIsYUFBUSxHQUFHLENBQUMsS0FBYSxFQUFFLE1BQWMsRUFBRSxFQUFFO1lBQzFELE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUE7WUFDeEIsTUFBTSxFQUFFLEVBQUUsRUFBRSxHQUFHLE9BQU8sQ0FBQTtZQUV0QixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUE7WUFDWCxFQUFFLENBQUMsVUFBVSxDQUNULEVBQUUsQ0FBQyxVQUFVLEVBQ2IsQ0FBQyxFQUNELEVBQUUsQ0FBQyxpQkFBaUIsRUFDcEIsS0FBSyxFQUNMLE1BQU0sRUFDTixDQUFDLEVBQ0QsRUFBRSxDQUFDLGVBQWUsRUFDbEIsRUFBRSxDQUFDLGNBQWMsRUFDakIsSUFBSSxDQUNQLENBQUE7UUFDTCxDQUFDLENBQUE7UUFFZ0IsYUFBUSxHQUFHLENBQUMsS0FBYSxFQUFFLE1BQWMsRUFBRSxFQUFFO1lBQzFELE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUE7WUFDeEIsTUFBTSxFQUFFLEVBQUUsRUFBRSxHQUFHLE9BQU8sQ0FBQTtZQUV0QixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUE7WUFDWCxFQUFFLENBQUMsVUFBVSxDQUNULEVBQUUsQ0FBQyxVQUFVLEVBQ2IsQ0FBQyxFQUNELEVBQUUsQ0FBQyxpQkFBaUIsRUFDcEIsS0FBSyxFQUNMLE1BQU0sRUFDTixDQUFDLEVBQ0QsRUFBRSxDQUFDLGVBQWUsRUFDbEIsRUFBRSxDQUFDLFlBQVksRUFDZixJQUFJLENBQ1AsQ0FBQTtRQUNMLENBQUMsQ0FBQTtRQUVnQixjQUFTLEdBQUcsQ0FBQyxLQUFhLEVBQUUsTUFBYyxFQUFFLEVBQUU7WUFDM0QsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQTtZQUN4QixNQUFNLEVBQUUsRUFBRSxFQUFFLEdBQUcsT0FBTyxDQUFBO1lBRXRCLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQTtZQUNYLEVBQUUsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLFVBQVUsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLGtCQUFrQixFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxlQUFlLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQTtRQUNoSCxDQUFDLENBQUE7UUEzREcsSUFBSSxDQUFDLFNBQVMsQ0FBQztZQUNYLFNBQVMsRUFBRSxTQUFTO1lBQ3BCLFNBQVMsRUFBRSxTQUFTO1lBQ3BCLEtBQUssRUFBRSxlQUFlO1lBQ3RCLEtBQUssRUFBRSxlQUFlO1NBQ3pCLENBQUMsQ0FBQTtRQUNGLElBQUksTUFBTSxDQUFDLFVBQVUsQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFLENBQUM7WUFDekMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFBO1FBQy9CLENBQUM7YUFBTSxJQUFJLE1BQU0sQ0FBQyxVQUFVLENBQUMsbUJBQW1CLENBQUMsRUFBRSxDQUFDO1lBQ2hELElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQTtRQUMvQixDQUFDO2FBQU0sQ0FBQztZQUNKLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQTtRQUNoQyxDQUFDO0lBQ0wsQ0FBQztDQStDSiJ9