@tolokoban/tgd
Version:
ToloGameDev library for WebGL2
43 lines • 4.17 kB
JavaScript
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