@doegis/core
Version:
DOE GIS API
3 lines (1 loc) • 4.01 kB
JavaScript
import t from"./isWebGL2Context.js";function _(t,_){if(_.compressedTextureETC)return null;const e=t.getExtension("WEBGL_compressed_texture_etc");return e?{COMPRESSED_R11_EAC:e.COMPRESSED_R11_EAC,COMPRESSED_SIGNED_R11_EAC:e.COMPRESSED_SIGNED_R11_EAC,COMPRESSED_RG11_EAC:e.COMPRESSED_RG11_EAC,COMPRESSED_SIGNED_RG11_EAC:e.COMPRESSED_SIGNED_RG11_EAC,COMPRESSED_RGB8_ETC2:e.COMPRESSED_RGB8_ETC2,COMPRESSED_SRGB8_ETC2:e.COMPRESSED_SRGB8_ETC2,COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2:e.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2,COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2:e.COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2,COMPRESSED_RGBA8_ETC2_EAC:e.COMPRESSED_RGBA8_ETC2_EAC,COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:e.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC}:null}function e(t,_){if(_.compressedTextureS3TC)return null;const e=t.getExtension("WEBGL_compressed_texture_s3tc");return e?{COMPRESSED_RGB_S3TC_DXT1:e.COMPRESSED_RGB_S3TC_DXT1_EXT,COMPRESSED_RGBA_S3TC_DXT1:e.COMPRESSED_RGBA_S3TC_DXT1_EXT,COMPRESSED_RGBA_S3TC_DXT3:e.COMPRESSED_RGBA_S3TC_DXT3_EXT,COMPRESSED_RGBA_S3TC_DXT5:e.COMPRESSED_RGBA_S3TC_DXT5_EXT}:null}function E(_,e){if(t(_))return{MIN:_.MIN,MAX:_.MAX};if(e.blendMinMax)return null;{const t=_.getExtension("EXT_blend_minmax");return t?{MIN:t.MIN_EXT,MAX:t.MAX_EXT}:null}}function n(t,_){if(_.textureFilterAnisotropic)return null;const e=t.getExtension("EXT_texture_filter_anisotropic")||t.getExtension("MOZ_EXT_texture_filter_anisotropic")||t.getExtension("WEBKIT_EXT_texture_filter_anisotropic");return e?{MAX_TEXTURE_MAX_ANISOTROPY:e.MAX_TEXTURE_MAX_ANISOTROPY_EXT,TEXTURE_MAX_ANISOTROPY:e.TEXTURE_MAX_ANISOTROPY_EXT}:null}function R(_,e){if(t(_))return{textureFloat:!0,textureFloatLinear:!e.textureFloatLinear&&!!_.getExtension("OES_texture_float_linear"),textureHalfFloat:!0,textureHalfFloatLinear:!0,HALF_FLOAT:_.HALF_FLOAT,R16F:_.R16F,RG16F:_.RG16F,RGBA16F:_.RGBA16F,R32F:_.R32F,RG32F:_.RG32F,RGBA32F:_.RGBA32F,R11F_G11F_B10F:_.R11F_G11F_B10F,RGB16F:_.RGB16F};if(_ instanceof WebGLRenderingContext){const t=!e.textureHalfFloat&&_.getExtension("OES_texture_half_float");return{textureFloat:!e.textureFloat&&!!_.getExtension("OES_texture_float"),textureFloatLinear:!e.textureFloatLinear&&!!_.getExtension("OES_texture_float_linear"),textureHalfFloat:!!t,textureHalfFloatLinear:!e.textureHalfFloatLinear&&!!_.getExtension("OES_texture_half_float_linear"),HALF_FLOAT:t?t.HALF_FLOAT_OES:void 0}}return null}function r(_,e){if(t(_)){const t=!e.colorBufferHalfFloat&&_.getExtension("EXT_color_buffer_half_float")||!e.colorBufferFloat&&_.getExtension("EXT_color_buffer_float"),E=!e.colorBufferFloat&&_.getExtension("EXT_color_buffer_float"),n=!e.floatBlend&&!e.colorBufferFloat&&_.getExtension("EXT_float_blend");return t||E||n?{textureFloat:!!E,textureHalfFloat:!!t,floatBlend:!!n,R16F:_.R16F,RG16F:_.RG16F,RGBA16F:_.RGBA16F,R32F:_.R32F,RG32F:_.RG32F,RGBA32F:_.RGBA32F,R11F_G11F_B10F:_.R11F_G11F_B10F,RGB16F:_.RGB16F}:null}if(_ instanceof WebGLRenderingContext){const t=!e.colorBufferHalfFloat&&_.getExtension("EXT_color_buffer_half_float"),E=!e.colorBufferFloat&&_.getExtension("WEBGL_color_buffer_float"),n=!e.floatBlend&&!e.colorBufferFloat&&_.getExtension("EXT_float_blend");return t||E||n?{textureFloat:!!E,textureHalfFloat:!!t,floatBlend:!!n,RGBA16F:t?t.RGBA16F_EXT:void 0,RGB16F:t?t.RGB16F_EXT:void 0,RGBA32F:E?E.RGBA32F_EXT:void 0}:null}return null}function o(_,e,E,n,R){if(n&&t(_))return!0;if(e[E])return!1;for(const t of R)if(_.getExtension(t))return!0;return!1}function l(_,e){if(!t(_))return null;if(e.textureNorm16)return null;const E=_.getExtension("EXT_texture_norm16");return E?{R16:E.R16_EXT,RG16:E.RG16_EXT,RGB16:E.RGB16_EXT,RGBA16:E.RGBA16_EXT,R16_SNORM:E.R16_SNORM_EXT,RG16_SNORM:E.RG16_SNORM_EXT,RGB16_SNORM:E.RGB16_SNORM_EXT,RGBA16_SNORM:E.RGBA16_SNORM_EXT}:null}export{o as loadBooleanExtension,r as loadColorBufferFloat,_ as loadCompressedTextureETC,e as loadCompressedTextureS3TC,E as loadMinMaxBlending,n as loadTextureFilterAnisotropicCapability,R as loadTextureFloat,l as loadTextureNorm16};