--- title: WebGLRenderingContext.attachShader() slug: Web/API/WebGLRenderingContext/attachShader translation_of: Web/API/WebGLRenderingContext/attachShader ---
{{APIRef("WebGL")}}

WebGL API  的 WebGLRenderingContext.attachShader() 方法负责往 {{domxref("WebGLProgram")}} 添加一个片段或者顶点着色器。

语法

void gl.attachShader(program, shader);

参数

program
一个 {{domxref("WebGLProgram")}} 对象
shader
一个类型为片段或者顶点的 {{domxref("WebGLShader")}}

示例

以下代码为 {{domxref("WebGLProgram")}} 添加一个预先定义好的着色器。

var program = gl.createProgram();

// 添加一个预先定义的着色器
gl.attachShader(program, vertexShader);
gl.attachShader(program, fragmentShader);

gl.linkProgram(program);

if ( !gl.getProgramParameter( program, gl.LINK_STATUS) ) {
  var info = gl.getProgramInfoLog(program);
  throw "Could not compile WebGL program. \n\n" + info;
}

规范

规范 状态 注释
{{SpecName('WebGL', "#5.14.9", "attachShader")}} {{Spec2('WebGL')}} Initial definition.
{{SpecName('OpenGL ES 2.0', "glAttachShader.xml", "glAttachShader")}} {{Spec2('OpenGL ES 2.0')}} OpenGL man page.

浏览器兼容性

{{Compat("api/WebGLRenderingContext", "WebGLRenderingContext.attachShader")}}

相关资料