import type { GLType } from '../gl'; import type { Immutable } from '../utils'; export interface GPUCapabilityDetail { floatTexture: number; halfFloatTexture: number; floatColorAttachment?: boolean; halfFloatColorAttachment?: boolean; maxVertexUniforms: number; maxVertexTextures: number; maxFragmentUniforms: number; maxFragmentTextures: number; maxShaderTexCount: number; maxTextureSize: number; maxTextureAnisotropy: number; shaderTextureLod: boolean; instanceDraw?: boolean; ktx2Support: boolean; drawBuffers?: boolean; asyncShaderCompile: boolean; intIndexElementBuffer?: boolean; readableDepthStencilTextures?: boolean; writableFragDepth?: boolean; standardDerivatives: boolean; halfFloatLinear: boolean; floatLinear: boolean; maxSample: number; } export declare class GPUCapability { type: GLType; level: number; detail: Immutable; private compressTextureCapabilityList; UNSIGNED_INT_24_8: number; internalFormatDepth16: number; internalFormatDepth24_stencil8: number; private drawBufferExtension; private textureMaxAnisotropyExt; glAsyncCompileExt: KHR_parallel_shader_compile | null; vaoExt: OES_vertex_array_object | null; constructor(gl: WebGLRenderingContext | WebGL2RenderingContext); get isWebGL2(): boolean; isCompressedFormatSupported(cap: CompressTextureCapabilityType): boolean; private setupCapability; framebufferTexture2D(gl: WebGLRenderingContext | WebGL2RenderingContext, target: GLenum, index: number, textarget: number, texture: WebGLTexture | null): void; drawBuffers(gl: WebGLRenderingContext | WebGL2RenderingContext, bufferStates: boolean[]): void; setTextureAnisotropic(gl: WebGLRenderingContext | WebGL2RenderingContext, target: GLenum, level: number): void; } /** * GL Capabilities * Some capabilities can be smoothed out by extension, and some capabilities must use WebGL 2.0. * */ export declare enum CompressTextureCapabilityType { astc = "WEBGL_compressed_texture_astc", astc_webkit = "WEBKIT_WEBGL_compressed_texture_astc", etc = "WEBGL_compressed_texture_etc", etc_webkit = "WEBKIT_WEBGL_compressed_texture_etc", etc1 = "WEBGL_compressed_texture_etc1", pvrtc = "WEBGL_compressed_texture_pvrtc", pvrtc_webkit = "WEBKIT_WEBGL_compressed_texture_pvrtc", sRGB = "EXT_sRGB" }