WebGLRenderingContext: attachShader() メソッド
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
WebGLRenderingContext.attachShader() は WebGL API のメソッドで、フラグメントか頂点のどちらかの WebGLShader
を WebGLProgram
にアタッチします。
構文
js
attachShader(program, shader)
引数
program
shader
-
フラグメントか頂点の
WebGLShader
。
例
以下は既存のシェーダーを WebGLProgram
にアタッチするコードです。
js
const program = gl.createProgram();
// 既に存在するシェーダーをアタッチ
gl.attachShader(program, vertexShader);
gl.attachShader(program, fragmentShader);
gl.linkProgram(program);
if (!gl.getProgramParameter(program, gl.LINK_STATUS)) {
const info = gl.getProgramInfoLog(program);
throw `WebGL プログラムをコンパイルできませんでした。 \n\n${info}`;
}
仕様書
Specification |
---|
WebGL Specification # 5.14.9 |
ブラウザーの互換性
BCD tables only load in the browser
関連情報
WebGLProgram
WebGLShader
WebGLRenderingContext.attachShader()
WebGLRenderingContext.compileShader()
WebGLRenderingContext.createProgram()
WebGLRenderingContext.createShader()
WebGLRenderingContext.deleteProgram()
WebGLRenderingContext.deleteShader()
WebGLRenderingContext.detachShader()
WebGLRenderingContext.getAttachedShaders()
WebGLRenderingContext.getProgramParameter()
WebGLRenderingContext.getProgramInfoLog()
WebGLRenderingContext.getShaderParameter()
WebGLRenderingContext.getShaderPrecisionFormat()
WebGLRenderingContext.getShaderInfoLog()
WebGLRenderingContext.getShaderSource()
WebGLRenderingContext.isProgram()
WebGLRenderingContext.isShader()
WebGLRenderingContext.linkProgram()
WebGLRenderingContext.shaderSource()
WebGLRenderingContext.useProgram()
WebGLRenderingContext.validateProgram()