---
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")}}
相关资料
- {{domxref("WebGLProgram")}}
- {{domxref("WebGLShader")}}
- {{domxref("WebGLRenderingContext.attachShader()")}}
- {{domxref("WebGLRenderingContext.compileShader()")}}
- {{domxref("WebGLRenderingContext.createProgram()")}}
- {{domxref("WebGLRenderingContext.createShader()")}}
- {{domxref("WebGLRenderingContext.deleteProgram()")}}
- {{domxref("WebGLRenderingContext.deleteShader()")}}
- {{domxref("WebGLRenderingContext.detachShader()")}}
- {{domxref("WebGLRenderingContext.getAttachedShaders()")}}
- {{domxref("WebGLRenderingContext.getProgramParameter()")}}
- {{domxref("WebGLRenderingContext.getProgramInfoLog()")}}
- {{domxref("WebGLRenderingContext.getShaderParameter()")}}
- {{domxref("WebGLRenderingContext.getShaderPrecisionFormat()")}}
- {{domxref("WebGLRenderingContext.getShaderInfoLog()")}}
- {{domxref("WebGLRenderingContext.getShaderSource()")}}
- {{domxref("WebGLRenderingContext.isProgram()")}}
- {{domxref("WebGLRenderingContext.isShader()")}}
- {{domxref("WebGLRenderingContext.linkProgram()")}}
- {{domxref("WebGLRenderingContext.shaderSource()")}}
- {{domxref("WebGLRenderingContext.useProgram()")}}
- {{domxref("WebGLRenderingContext.validateProgram()")}}