webgl学习之getContext函数详解

110 阅读2分钟

用法:

getContext(contextType)
getContext(contextType, contextAttributes)

参数介绍

contextType取值如下:

  • "2d"开始创建CanvasRenderingContext2D对象,该对象表示二维渲染上下文。
  • “webgl”(或“experimental-webgl”),它将创建一个表示三维渲染上下文的WebGLRenderingContext对象。此上下文仅在实现WebGL版本1(OpenGL ES 2.0)的浏览器上可用。
  • “webgl2”,它将创建一个表示三维渲染上下文的WebGL2RenderingContext对象。此上下文仅在实现WebGL版本2(OpenGL ES 3.0)的浏览器上可用。
  • “webgpu”,它将创建一个GPUCanvasContext对象,表示webgpu渲染管道的三维渲染上下文。此上下文仅在实现WebGPU API的浏览器上可用。
  • “bitmaprenderer”,它将创建一个ImageBitmapRenderingContext,该上下文仅提供用给定的ImageBitmap替换画布内容的功能。

注意:标识符“experimental-webgl”用于webgl的新实现。这些实现要么没有达到测试平台的一致性,要么平台上的图形驱动程序还不稳定。Khronos集团根据某些一致性规则对WebGL的实现进行认证

contextTypewebgl时,contextAttributes取值如下:

  • alpha 一个布尔值,用于指示画布是否包含alpha缓冲区。
  • depth 一个布尔值,指示绘图缓冲区被请求具有至少16位的深度缓冲区。
  • stencil 一个布尔值,指示绘图缓冲区被请求具有至少8位的模版缓冲区。
  • desynchronized 一个布尔值,提示用户代理通过从事件循环中取消画布绘制周期的同步来减少延迟
  • antialias 一个布尔值,指示是否在可能的情况下执行抗锯齿。
  • failIfMajorPerformanceCaveat 一个布尔值,指示如果系统性能较低或没有可用的硬件GPU,是否将创建上下文。
  • powerPreference 对浏览器的提示,指示GPU的什么配置适合WebGL上下文。可能的值为:
    • default 让浏览器决定哪种GPU配置最合适。这是默认值。
    • high-performance 高性能显卡
    • low-power 核心显卡
  • premultipliedAlpha 一个布尔值,指示页面合成器将假定绘图缓冲区包含具有预乘alpha的颜色。
  • preserveDrawingBuffer 如果该值为true,则缓冲区将不会被清除,并将保留其值,直到被开发人员清除或覆盖为止。
  • xrCompatible 一个布尔值,提示浏览器为沉浸式XR设备使用兼容的图形适配器。不鼓励在创建上下文时设置此同步标志;而是在您打算启动XR会话时调用异步WebGLRenderingContext.makeXRCompatible()方法。