检查Dart中的WebGL支持

mar*_*tin 4 webgl dart

我正在玩WebGLDart,我无法弄清楚如何检查某个对象是否有某种方法.例如在JavaScript中我会检查WebGL是否可用,window.WebGLRenderingContext但在Dart中是否有相同的方法?

Toj*_*oji 8

IIRC Dart的目标之一是规范化浏览器定义什么的不一致性.因此,WebGL将始终 "可用",因为它的接口将始终存在于Dart中,或者您运行的浏览器是否具有本机定义.

是否支持WebGL最好以与Javascript相同的方式进行检查:

WebGLRenderingContext gl = canvas.getContext("experimental-webgl");
Run Code Online (Sandbox Code Playgroud)

如果gl为null,则不支持WebGL.否则就是!

(顺便说一下:只是因为window.WebGLRenderingContextJavascript中存在并不意味着支持WebGL!这只会告诉您浏览器能够调度WebGL命令.您运行的系统可能不接受它们.最好还是尝试创建一个上下文并检测何时失败.)