files/en-us/web/api/webglrenderingcontext/createprogram/index.md
{{APIRef("WebGL")}}{{AvailableInWorkers}}
The WebGLRenderingContext.createProgram() method of the
WebGL API creates and initializes a
{{domxref("WebGLProgram")}} object.
createProgram()
None.
A {{domxref("WebGLProgram")}} object that is a combination of two compiled {{domxref("WebGLShader")}}s consisting of a vertex shader and a fragment shader (both written in GLSL). These are then linked into a usable program.
const program = gl.createProgram();
// Attach pre-existing shaders
gl.attachShader(program, vertexShader);
gl.attachShader(program, fragmentShader);
gl.linkProgram(program);
if (!gl.getProgramParameter(program, gl.LINK_STATUS)) {
const info = gl.getProgramInfoLog(program);
throw new Error(`Could not compile WebGL program. \n\n${info}`);
}
See {{domxref("WebGLShader")}} for information on creating the
vertexShader and fragmentShader in the above example.
{{Specifications}}
{{Compat}}