WebGLRenderingContext: attachShader() メソッド
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()
(en-US)WebGLRenderingContext.deleteShader()
(en-US)WebGLRenderingContext.detachShader()
(en-US)WebGLRenderingContext.getAttachedShaders()
(en-US)WebGLRenderingContext.getProgramParameter()
(en-US)WebGLRenderingContext.getProgramInfoLog()
(en-US)WebGLRenderingContext.getShaderParameter()
WebGLRenderingContext.getShaderPrecisionFormat()
(en-US)WebGLRenderingContext.getShaderInfoLog()
WebGLRenderingContext.getShaderSource()
(en-US)WebGLRenderingContext.isProgram()
(en-US)WebGLRenderingContext.isShader()
(en-US)WebGLRenderingContext.linkProgram()
WebGLRenderingContext.shaderSource()
WebGLRenderingContext.useProgram()
WebGLRenderingContext.validateProgram()
(en-US)