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()
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()