Internet explorer 如何使用HTMLVideoElement源检测对WebGL texImage2D的浏览器支持

Internet explorer 如何使用HTMLVideoElement源检测对WebGL texImage2D的浏览器支持,internet-explorer,webgl,Internet Explorer,Webgl,Microsoft IE11支持WebGL,但不支持使用gl.texImage2D()从视频加载纹理。请参见此处的“错误”: 除了专门检测IE11并将其列入黑名单之外,还有什么方法可以检测浏览器对该功能的支持吗 当我尝试将视频元素用作纹理源时,我在控制台中看到以下错误: WEBGL11072: INVALID_VALUE: texImage2D: This texture source is not supported WEBGL11098: drawArrays: The texture i

Microsoft IE11支持WebGL,但不支持使用
gl.texImage2D()
从视频加载纹理。请参见此处的“错误”:

除了专门检测IE11并将其列入黑名单之外,还有什么方法可以检测浏览器对该功能的支持吗

当我尝试将视频元素用作纹理源时,我在控制台中看到以下错误:

WEBGL11072: INVALID_VALUE: texImage2D: This texture source is not supported
WEBGL11098: drawArrays: The texture is a non-power-of-two texture or not mipmap complete
我可能会满足于一种机制来检测对NPOT纹理的支持,我尝试加载的视频帧可能总是这样

是否有方法检测此功能的浏览器支持

你的问题似乎很直截了当。创建一个小视频,尝试通过调用
texImage2D
将其上载到纹理,调用
getError
,如果它不是
NO_ERROR
,则不支持视频

我可能会满足于一种机制来检测对NPOT纹理的支持

除非IE11的WebGL中有更多的bug,否则所有WebGL中的NPOT支持都应该是相同的。(所有WebGL 1.0s)


也就是说,如果使用NPOT纹理,则必须将“环绕”设置为“夹紧到边缘”,并将“最小过滤”设置为“最近的”或“线性”。你也不能调用
generateMipmap
(考虑到所需的过滤,这将没有任何意义),同样你只能上传mip级别0。

“试试看是否有错误”并不是我检测功能支持的真正想法,但可能这是这个问题的唯一解决方案。是的,我知道没有别的办法了。很抱歉没有支持的格式列表。IE11的WebGL支持还存在其他问题