WebGLRenderingContext.compileShader

概要

compileShaderは、createShadershaderSourceで設定したGLSLシェーダーをコンパイルします。

関連

  • createShader
    WebGLShaderオブジェクトを生成します。

  • shaderSource
    WebGLShaderオブジェクトにシェーダーコード文字列を関連づける関数です。シェーダーコンパイルの前に、まずこの関数でコンパイル対象のシェーダーコード文字列を設定する必要があります。

  • コンパイルしたシェーダーオブジェクトは、WebGLProgramで使用することができます。

構文

void gl.compileShader(shader);

引数

【shader】

頂点、またはフラグメントのWebGLShader。

戻り値

無し

02-draw-triangle】より、一部抜粋

function compileShader(gl: WebGLRenderingContext, shaderType: ShaderType, shaderStr: string) { // シェーダーオブジェクトを作ります let shader: WebGLShader | null; if (shaderType == ShaderType.Vertex) { shader = gl.createShader(gl.VERTEX_SHADER); } else if (shaderType == ShaderType.Fragment) { shader = gl.createShader(gl.FRAGMENT_SHADER); } if (shader! == null) { alert('Failed to create WebGL shader.'); return null; } // シェーダーコードをWebGLに読み込ませます gl.shaderSource(shader, shaderStr); // 読み込ませたシェーダーコードをコンパイルさせます gl.compileShader(shader); // コンパイルがエラーになった場合は、原因を表示させます if (!gl.getShaderParameter(shader, gl.COMPILE_STATUS)) { alert(gl.getShaderInfoLog(shader)); return null; } return shader; }