@tolokoban/tgd
Version:
ToloGameDev library for WebGL2
41 lines • 5.19 kB
JavaScript
export class TgdExtensions {
constructor(gl) {
this.gl = gl;
this.logs = [];
this.EXT_color_buffer_float = this.activate("EXT_color_buffer_float");
this.EXT_color_buffer_half_float = this.activate("EXT_color_buffer_half_float");
this.EXT_float_blend = this.activate("EXT_float_blend");
this.EXT_texture_compression_bptc = this.activate("EXT_texture_compression_bptc");
this.EXT_texture_compression_rgtc = this.activate("EXT_texture_compression_rgtc");
this.EXT_texture_filter_anisotropic = this.activate("EXT_texture_filter_anisotropic");
this.KHR_parallel_shader_compile = this.activate("KHR_parallel_shader_compile");
this.OES_texture_float_linear = this.activate("OES_texture_float_linear");
this.OES_texture_half_float_linear = this.activate("OES_texture_half_float_linear");
this.OVR_multiview2 = this.activate("OVR_multiview2");
this.WEBGL_color_buffer_float = this.activate("WEBGL_color_buffer_float");
this.WEBGL_compressed_texture_astc = this.activate("WEBGL_compressed_texture_astc");
this.WEBGL_compressed_texture_etc = this.activate("WEBGL_compressed_texture_etc");
this.WEBGL_compressed_texture_etc1 = this.activate("WEBGL_compressed_texture_etc1");
this.WEBGL_compressed_texture_pvrtc = this.activate("WEBGL_compressed_texture_pvrtc");
this.WEBGL_compressed_texture_s3tc = this.activate("WEBGL_compressed_texture_s3tc");
this.WEBGL_compressed_texture_s3tc_srgb = this.activate("WEBGL_compressed_texture_s3tc_srgb");
this.WEBGL_debug_renderer_info = this.activate("WEBGL_debug_renderer_info");
this.WEBGL_debug_shaders = this.activate("WEBGL_debug_shaders");
this.WEBGL_lose_context = this.activate("WEBGL_lose_context");
this.WEBGL_multi_draw = this.activate("WEBGL_multi_draw");
}
activate(extensionName) {
const ext = this.gl.getExtension(extensionName);
this.logs.push([
`WebGL2 extension %c${extensionName}%c: %c${ext ? "ENABLED" : "DISABLED"}`,
["font-weight:900", "font-weight:300", ext ? "color:#0f0" : "color:#f00"],
]);
return ext;
}
debug() {
for (const [caption, styles] of this.logs) {
console.debug(caption, ...styles);
}
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZW5zaW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250ZXh0L2V4dGVuc2lvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFPLGFBQWE7SUEwS3RCLFlBQTRCLEVBQTBCO1FBQTFCLE9BQUUsR0FBRixFQUFFLENBQXdCO1FBRnJDLFNBQUksR0FBMEMsRUFBRSxDQUFBO1FBRzdELElBQUksQ0FBQyxzQkFBc0IsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLHdCQUF3QixDQUFrQyxDQUFBO1FBQ3RHLElBQUksQ0FBQywyQkFBMkIsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUM1Qyw2QkFBNkIsQ0FDTSxDQUFBO1FBQ3ZDLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBMkIsQ0FBQTtRQUNqRixJQUFJLENBQUMsNEJBQTRCLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FDN0MsOEJBQThCLENBQ00sQ0FBQTtRQUN4QyxJQUFJLENBQUMsNEJBQTRCLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FDN0MsOEJBQThCLENBQ00sQ0FBQTtRQUN4QyxJQUFJLENBQUMsOEJBQThCLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FDL0MsZ0NBQWdDLENBQ00sQ0FBQTtRQUMxQyxJQUFJLENBQUMsMkJBQTJCLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FDNUMsNkJBQTZCLENBQ00sQ0FBQTtRQUN2QyxJQUFJLENBQUMsd0JBQXdCLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQywwQkFBMEIsQ0FBb0MsQ0FBQTtRQUM1RyxJQUFJLENBQUMsNkJBQTZCLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FDOUMsK0JBQStCLENBQ00sQ0FBQTtRQUN6QyxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQTBCLENBQUE7UUFDOUUsSUFBSSxDQUFDLHdCQUF3QixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsMEJBQTBCLENBQW9DLENBQUE7UUFDNUcsSUFBSSxDQUFDLDZCQUE2QixHQUFHLElBQUksQ0FBQyxRQUFRLENBQzlDLCtCQUErQixDQUNNLENBQUE7UUFDekMsSUFBSSxDQUFDLDRCQUE0QixHQUFHLElBQUksQ0FBQyxRQUFRLENBQzdDLDhCQUE4QixDQUNNLENBQUE7UUFDeEMsSUFBSSxDQUFDLDZCQUE2QixHQUFHLElBQUksQ0FBQyxRQUFRLENBQzlDLCtCQUErQixDQUNNLENBQUE7UUFDekMsSUFBSSxDQUFDLDhCQUE4QixHQUFHLElBQUksQ0FBQyxRQUFRLENBQy9DLGdDQUFnQyxDQUNNLENBQUE7UUFDMUMsSUFBSSxDQUFDLDZCQUE2QixHQUFHLElBQUksQ0FBQyxRQUFRLENBQzlDLCtCQUErQixDQUNNLENBQUE7UUFDekMsSUFBSSxDQUFDLGtDQUFrQyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQ25ELG9DQUFvQyxDQUNNLENBQUE7UUFDOUMsSUFBSSxDQUFDLHlCQUF5QixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsMkJBQTJCLENBQXFDLENBQUE7UUFDL0csSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMscUJBQXFCLENBQStCLENBQUE7UUFDN0YsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsb0JBQW9CLENBQThCLENBQUE7UUFDMUYsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsa0JBQWtCLENBQTRCLENBQUE7SUFDeEYsQ0FBQztJQUVELFFBQVEsQ0FBQyxhQUFxQjtRQUMxQixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsQ0FBQTtRQUMvQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztZQUNYLHNCQUFzQixhQUFhLFNBQVMsR0FBRyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBRTtZQUMxRSxDQUFDLGlCQUFpQixFQUFFLGlCQUFpQixFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUM7U0FDNUUsQ0FBQyxDQUFBO1FBQ0YsT0FBTyxHQUFHLENBQUE7SUFDZCxDQUFDO0lBRUQsS0FBSztRQUNELEtBQUssTUFBTSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDeEMsT0FBTyxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsR0FBRyxNQUFNLENBQUMsQ0FBQTtRQUNyQyxDQUFDO0lBQ0wsQ0FBQztDQUNKIn0=