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

WebGL API  的 WebGLRenderingContext.createProgram() 方法用于创建和初始化一个 {{domxref("WebGLProgram")}} 对象。

语法

WebGLProgram gl.createProgram();

参数

无.

返回值

一个 {{domxref("WebGLProgram")}} 对象由两个编译过后的 {{domxref("WebGLShader")}} 组成 - 顶点着色器和片段着色器(均由 GLSL 语言所写)。这些组合成一个可用的 WebGL 着色器程序。

例子

创建一个 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")}}

相关资料