--- title: WebGLRenderingContext.createProgram() slug: Web/API/WebGLRenderingContext/createProgram translation_of: Web/API/WebGLRenderingContext/createProgram ---
WebGL API 的 WebGLRenderingContext.createProgram() 方法用于创建和初始化一个 {{domxref("WebGLProgram")}} 对象。
WebGLProgram gl.createProgram();
无.
一个 {{domxref("WebGLProgram")}} 对象由两个编译过后的 {{domxref("WebGLShader")}} 组成 - 顶点着色器和片段着色器(均由 GLSL 语言所写)。这些组合成一个可用的 WebGL 着色器程序。
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;
}
详见 {{domxref("WebGLShader")}} 获取更多关于创建上述代码中顶点着色器和片段着色器的信息。
| 规范 | 状态 | 注释 |
|---|---|---|
| {{SpecName('WebGL', "#5.14.9", "createProgram")}} | {{Spec2('WebGL')}} | 初始定义 |
| {{SpecName('OpenGL ES 2.0', "glCreateProgram.xml", "glCreateProgram")}} | {{Spec2('OpenGL ES 2.0')}} | OpenGL(类似) API的规范文档 |
{{Compat("api/WebGLRenderingContext", "WebGLRenderingContext.createProgram")}}