MCP 3D Printer Server

by DMontgomery40
Verified
/** * A WebGL 2 backend utility module for managing the device's capabilities. * * @private */ class WebGLCapabilities { /** * Constructs a new utility object. * * @param {WebGLBackend} backend - The WebGL 2 backend. */ constructor( backend ) { /** * A reference to the WebGL 2 backend. * * @type {WebGLBackend} */ this.backend = backend; /** * This value holds the cached max anisotropy value. * * @type {Number?} * @default null */ this.maxAnisotropy = null; } /** * Returns the maximum anisotropy texture filtering value. This value * depends on the device and is reported by the `EXT_texture_filter_anisotropic` * WebGL extension. * * @return {Number} The maximum anisotropy texture filtering value. */ getMaxAnisotropy() { if ( this.maxAnisotropy !== null ) return this.maxAnisotropy; const gl = this.backend.gl; const extensions = this.backend.extensions; if ( extensions.has( 'EXT_texture_filter_anisotropic' ) === true ) { const extension = extensions.get( 'EXT_texture_filter_anisotropic' ); this.maxAnisotropy = gl.getParameter( extension.MAX_TEXTURE_MAX_ANISOTROPY_EXT ); } else { this.maxAnisotropy = 0; } return this.maxAnisotropy; } } export default WebGLCapabilities;