webGL对象获取代码在 cesium\Source\Renderer\Context.js 中,关键代码为:
if (!defined(getWebGLStub)) {
if (requestWebgl2) {
glContext = canvas.getContext('webgl2', webglOptions) || canvas.getContext('experimental-webgl2', webglOptions) || undefined;
if (defined(glContext)) {
webgl2 = true;
}
}
if (!defined(glContext)) {
glContext = canvas.getContext('webgl', webglOptions) || canvas.getContext('experimental-webgl', webglOptions) || undefined;
}
if (!defined(glContext)) {
throw new RuntimeError('The browser supports WebGL, but initialization failed.');
}
} else {
// Use WebGL stub when requested for unit tests
glContext = getWebGLStub(canvas, webglOptions);
}
先获取webgl2,如未能获取再获取 webgl
- 编程中可通过一下方式获取webgl对象
viewer.scene.context._gl
- 判断是否支持webgl2
viewer.scene.context.webgl2
- 编程中可通过一下方式获取canavs对象
viewer.scene.canvas
viewer.scene.context.canvas