WebGLRenderingContext:getShaderPrecisionFormat() 方法

基线 广泛可用

此功能已得到很好的建立,并且可以在许多设备和浏览器版本中使用。它从以下浏览器版本开始提供: 2015 年 7 月.

WebGLRenderingContext.getShaderPrecisionFormat() 方法是 WebGL API 的一部分,它返回一个新的 WebGLShaderPrecisionFormat 对象,该对象描述了指定着色器数值格式的范围和精度。

语法

js
getShaderPrecisionFormat(shaderType, precisionType)

参数

shaderType

gl.FRAGMENT_SHADERgl.VERTEX_SHADER 之一。

precisionType

精度类型值。可以是 gl.LOW_FLOATgl.MEDIUM_FLOATgl.HIGH_FLOATgl.LOW_INTgl.MEDIUM_INTgl.HIGH_INT 之一。

返回值

一个 WebGLShaderPrecisionFormat 对象或 null(如果发生错误)。

异常

  • 如果着色器或精度类型无法识别,则为 gl.INVALID_ENUM
  • 如果着色器编译器不受支持,则为 gl.INVALID_OPERATION

示例

以下代码获取具有 gl.MEDIUM_FLOAT 精度类型的 gl.VERTEX_SHADER 的精度格式。

js
const canvas = document.getElementById("canvas");
const gl = canvas.getContext("webgl");

gl.getShaderPrecisionFormat(gl.VERTEX_SHADER, gl.MEDIUM_FLOAT);
// WebGLShaderPrecisionFormat { rangeMin: 127, rangeMax: 127, precision: 23 }

规范

规范
WebGL 规范
# 5.14.9

浏览器兼容性

BCD 表格仅在启用 JavaScript 的浏览器中加载。

另请参阅