import { EnumClass , EnumIO , _from } from '../foundation/misc/EnumIO' ; export type WebGLExtensionEnum = EnumIO ; class WebGLExtensionClass extends EnumClass implements WebGLExtensionEnum { constructor ( { index , str } ) { super ( { index , str } ) ; } } const VertexArrayObject = new WebGLExtensionClass ( { index : 1 , str : 'OES_vertex_array_object' , } ) ; const TextureFloat = new WebGLExtensionClass ( { index : 2 , str : 'OES_texture_float' , } ) ; const TextureHalfFloat = new WebGLExtensionClass ( { index : 3 , str : 'OES_texture_half_float' , } ) ; const TextureFloatLinear = new WebGLExtensionClass ( { index : 4 , str : 'OES_texture_float_linear' , } ) ; const TextureHalfFloatLinear = new WebGLExtensionClass ( { index : 5 , str : 'OES_texture_half_float_linear' , } ) ; const InstancedArrays = new WebGLExtensionClass ( { index : 6 , str : 'ANGLE_instanced_arrays' , } ) ; const TextureFilterAnisotropic = new WebGLExtensionClass ( { index : 7 , str : 'EXT_texture_filter_anisotropic' , } ) ; const ElementIndexUint = new WebGLExtensionClass ( { index : 8 , str : 'OES_element_index_uint' , } ) ; const ShaderTextureLod = new WebGLExtensionClass ( { index : 9 , str : 'EXT_shader_texture_lod' , } ) ; const ShaderDerivatives = new WebGLExtensionClass ( { index : 10 , str : 'OES_standard_derivatives' , } ) ; const DrawBuffers = new WebGLExtensionClass ( { index : 11 , str : 'WEBGL_draw_buffers' , } ) ; const BlendMinmax = new WebGLExtensionClass ( { index : 12 , str : 'EXT_blend_minmax' , } ) ; const ColorBufferFloat = new WebGLExtensionClass ( { index : 13 , str : 'WEBGL_color_buffer_float' , } ) ; const CompressedTextureAstc = new WebGLExtensionClass ( { index : 14 , str : 'WEBGL_compressed_texture_astc' , } ) ; const CompressedTextureS3tc = new WebGLExtensionClass ( { index : 15 , str : 'WEBGL_compressed_texture_s3tc' , } ) ; const CompressedTexturePvrtc = new WebGLExtensionClass ( { index : 16 , str : 'WEBGL_compressed_texture_pvrtc' , } ) ; const CompressedTextureAtc = new WebGLExtensionClass ( { index : 17 , str : 'WEBGL_compressed_texture_atc' , } ) ; const CompressedTextureEtc = new WebGLExtensionClass ( { index : 18 , str : 'WEBGL_compressed_texture_etc' , } ) ; const CompressedTextureEtc1 = new WebGLExtensionClass ( { index : 19 , str : 'WEBGL_compressed_texture_etc1' , } ) ; const CompressedTextureBptc = new WebGLExtensionClass ( { index : 20 , str : 'EXT_texture_compression_bptc' , } ) ; const typeList = [ VertexArrayObject , TextureFloat , TextureHalfFloat , TextureFloatLinear , TextureHalfFloatLinear , InstancedArrays , TextureFilterAnisotropic , ElementIndexUint , ShaderTextureLod , ShaderDerivatives , DrawBuffers , BlendMinmax , ColorBufferFloat , CompressedTextureAstc , CompressedTextureS3tc , CompressedTexturePvrtc , CompressedTextureAtc , CompressedTextureEtc , CompressedTextureEtc1 , CompressedTextureBptc , ] ; function from ( { index } ) { return _from ( { typeList , index } ) as WebGLExtensionEnum ; } export const WebGLExtension = Object . freeze ( { VertexArrayObject , TextureFloat , TextureHalfFloat , TextureFloatLinear , TextureHalfFloatLinear , InstancedArrays , TextureFilterAnisotropic , ElementIndexUint , ShaderTextureLod , ShaderDerivatives , DrawBuffers , BlendMinmax , ColorBufferFloat , CompressedTextureAstc , CompressedTextureS3tc , CompressedTexturePvrtc , CompressedTextureAtc , CompressedTextureEtc , CompressedTextureEtc1 , CompressedTextureBptc , } ) ;