123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119 |
- /**
- * Interface used to describe the capabilities of the engine relatively to the current browser
- */
- export interface EngineCapabilities {
- /** Maximum textures units per fragment shader */
- maxTexturesImageUnits: number;
- /** Maximum texture units per vertex shader */
- maxVertexTextureImageUnits: number;
- /** Maximum textures units in the entire pipeline */
- maxCombinedTexturesImageUnits: number;
- /** Maximum texture size */
- maxTextureSize: number;
- /** Maximum texture samples */
- maxSamples?: number;
- /** Maximum cube texture size */
- maxCubemapTextureSize: number;
- /** Maximum render texture size */
- maxRenderTextureSize: number;
- /** Maximum number of vertex attributes */
- maxVertexAttribs: number;
- /** Maximum number of varyings */
- maxVaryingVectors: number;
- /** Maximum number of uniforms per vertex shader */
- maxVertexUniformVectors: number;
- /** Maximum number of uniforms per fragment shader */
- maxFragmentUniformVectors: number;
- /** Defines if standard derivatives (dx/dy) are supported */
- standardDerivatives: boolean;
- /** Defines if s3tc texture compression is supported */
- s3tc?: WEBGL_compressed_texture_s3tc;
- /** Defines if s3tc sRGB texture compression is supported */
- s3tc_srgb?: WEBGL_compressed_texture_s3tc_srgb;
- /** Defines if pvrtc texture compression is supported */
- pvrtc: any;
- /** Defines if etc1 texture compression is supported */
- etc1: any;
- /** Defines if etc2 texture compression is supported */
- etc2: any;
- /** Defines if astc texture compression is supported */
- astc: any;
- /** Defines if bptc texture compression is supported */
- bptc: any;
- /** Defines if float textures are supported */
- textureFloat: boolean;
- /** Defines if vertex array objects are supported */
- vertexArrayObject: boolean;
- /** Gets the webgl extension for anisotropic filtering (null if not supported) */
- textureAnisotropicFilterExtension?: EXT_texture_filter_anisotropic;
- /** Gets the maximum level of anisotropy supported */
- maxAnisotropy: number;
- /** Defines if instancing is supported */
- instancedArrays: boolean;
- /** Defines if 32 bits indices are supported */
- uintIndices: boolean;
- /** Defines if high precision shaders are supported */
- highPrecisionShaderSupported: boolean;
- /** Defines if depth reading in the fragment shader is supported */
- fragmentDepthSupported: boolean;
- /** Defines if float texture linear filtering is supported*/
- textureFloatLinearFiltering: boolean;
- /** Defines if rendering to float textures is supported */
- textureFloatRender: boolean;
- /** Defines if half float textures are supported*/
- textureHalfFloat: boolean;
- /** Defines if half float texture linear filtering is supported*/
- textureHalfFloatLinearFiltering: boolean;
- /** Defines if rendering to half float textures is supported */
- textureHalfFloatRender: boolean;
- /** Defines if textureLOD shader command is supported */
- textureLOD: boolean;
- /** Defines if texelFetch shader command is supported */
- texelFetch: boolean;
- /** Defines if draw buffers extension is supported */
- drawBuffersExtension: boolean;
- /** Defines if depth textures are supported */
- depthTextureExtension: boolean;
- /** Defines if float color buffer are supported */
- colorBufferFloat: boolean;
- /** Defines if half float color buffer are supported */
- colorBufferHalfFloat?: boolean;
- /** Gets disjoint timer query extension (null if not supported) */
- timerQuery?: EXT_disjoint_timer_query;
- /** Defines if timestamp can be used with timer query */
- canUseTimestampForTimerQuery: boolean;
- /** Defines if occlusion queries are supported by the engine */
- supportOcclusionQuery: boolean;
- /** Defines if multiview is supported (https://www.khronos.org/registry/webgl/extensions/WEBGL_multiview/) */
- multiview?: any;
- /** Defines if oculus multiview is supported (https://developer.oculus.com/documentation/oculus-browser/latest/concepts/browser-multiview/) */
- oculusMultiview?: any;
- /** Function used to let the system compiles shaders in background */
- parallelShaderCompile?: {
- COMPLETION_STATUS_KHR: number;
- };
- /** Max number of texture samples for MSAA */
- maxMSAASamples: number;
- /** Defines if the blend min max extension is supported */
- blendMinMax: boolean;
- /** In some iOS + WebGL1, gl_InstanceID (and gl_InstanceIDEXT) is undefined even if instancedArrays is true. So don't use gl_InstanceID in those cases */
- canUseGLInstanceID: boolean;
- /** Defines if gl_vertexID is available */
- canUseGLVertexID: boolean;
- /** Defines if compute shaders are supported by the engine */
- supportComputeShaders: boolean;
- /** Defines if sRGB texture formats are supported */
- supportSRGBBuffers: boolean;
- /** Defines if transform feedbacks are supported */
- supportTransformFeedbacks: boolean;
- /** Defines if texture max level are supported */
- textureMaxLevel: boolean;
- /** Defines the maximum layer count for a 2D Texture array. */
- texture2DArrayMaxLayerCount: number;
- /** Defines if the morph target texture is supported. */
- disableMorphTargetTexture: boolean;
- /** Defines if float textures like r32f, rg32f or rgba32f support being used as a resolve target */
- supportFloatTexturesResolve: boolean;
- /** Defines if RG11B10UFloat texture format is color renderable */
- rg11b10ufColorRenderable: boolean;
- }
|