Cesium源码解读(一)获取webgl对象

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

你可能感兴趣的:(JavaScript,Cesium)