/// <summary> /// シェーダーを作成する /// </summary> /// <param name="source">シェーダーのソース</param> /// <param name="type">シェーダーの種類</param> /// <returns>シェーダーID</returns> public static int CreateShader(string source, ShaderType type) { // シェーダーを作成 int shader = GL.CreateShader(type); // ソースから読み込んでコンパイル GL.ShaderSource(shader, source); GL.CompileShader(shader); // シェーダーのコンパイル状態を取得 int status; GL.GetShader(shader, ShaderParameter.CompileStatus, out status); // コンパイルに成功していなかったら if (status != 1) { // 例外 var ex = new CompileShaderException(shader, type, GL.GetShaderInfoLog(shader)); throw ex; } // シェーダーを返す return(shader); }
/// <summary> /// シェーダーを作成する /// </summary> /// <param name="source">シェーダーのソース</param> /// <param name="type">シェーダーの種類</param> /// <returns>シェーダーID</returns> public static int CreateShader(string source, ShaderType type) { // シェーダーを作成 int shader = GL.CreateShader(type); // ソースから読み込んでコンパイル GL.ShaderSource(shader, source); GL.CompileShader(shader); // シェーダーのコンパイル状態を取得 int status; GL.GetShader(shader, ShaderParameter.CompileStatus, out status); // コンパイルに成功していなかったら if(status != 1) { // 例外 var ex = new CompileShaderException(shader, type, GL.GetShaderInfoLog(shader)); throw ex; } // シェーダーを返す return shader; }