何が必要なコンパイルおよび実行するにはGLSLましょう。
質問
ようにしている GLSL例, ができません。
エラーのライン glGetShaderiv(vShader, GL_COMPILE_STATUS, &status);
のプログラム終了します。 vShader
はファイル vPhong.glsl
.
のエラーを返す:
0(18) : error C0000: syntax error, unexpected $undefined at token "<undefined>"
0(18) : error C0501: type name expected at token "<undefined>"
して設置"を参照GLEW、供給過剰とそのlibファイルとする。していま glewInit
'ed私のプログラム。
のプログラムが発見できます。glslファイルとする。
のかということすることができるようにな実行 コンパイル済みGLSL-デモ, もにコンパイルと実行 のプロジェクト 自分のパソコン。の"initializations"の作業プログラムおよびこれは同じです。
またコピーの不良ソースのプロジェクトがきていることを確認して下さいたものをプロジェクトの設定がエラーの、残念ながらでになかった。 なので、エラーになっているようC++のコードではなく、プロジェクト.
中期経営計画を中心に
私のWindows7-機械から"アクセス違反時の走行を通してVisual Studio.のプログラムで止まってしばらんでます。Windows XP-機械とは私のキャッチされたと見なされます。
かを取得しておりませんが、エラーの警告を除警告 fopen
が安全でない)場合をまとめましたのでよろしければ、プログラム。
Visual Studioのライン vShader = glCreateShader(GL_VERTEX_SHADER);
ソースとして、エラーとなります。
追加 glewInit();
固定以上。
解決
あの誤り プログラム:
初:
glLinkProgram(program);
glGetShaderiv(program, GL_LINK_STATUS, &status);
最後の行のすべて glGetProgramiv(program, GL_LINK_STATUS, &status);
.
また、 fopen
読み取りのシェーダのファイルを使用したらよいと rb
引数としてだけでなく r
.
代替 glGetShaderiv
と glGetProgramiv
加 glewInit()
固定の初期ます。
を変更する引数 fopen
固定のシェーダエラーになります。
他のヒント
その誤差のGLSLコンパイラではなく、C++コンパイラです。18行目で一部のシェーダーするものでは混乱のGLSLコンパイラ;そらくランダムにゴミや印刷文字です。一つ簡単に行うことを指定するも長長さ(長さ)用シェーダー源とするいかなるNUL-ターミネーターの末尾に文字列
なんなのかどうまとめる。で使用GLされていないAPIを直接利用できるようにしますのwindows apiを提供します。すべてのシェーダーのApiです。
アクセスしてwindowsでは、一般的に利用する必要の拡張機能機構により提供をwgl、または延長wrapper.
[編集への追加]
なので---とglew initの。シェーダーパービルドログが失敗をしたりせず、それらから このチュートリアル):
GLint blen = 0;
GLsizei slen = 0;
glGetShaderiv(ShaderObject, GL_INFO_LOG_LENGTH , &blen);
if (blen > 1)
{
GLchar* compiler_log = (GLchar*)malloc(blen);
glGetInfoLogARB(ShaderObject, blen, &slen, compiler_log);
cout << "compiler_log:\n", compiler_log);
free (compiler_log);
}
このエラーメッセージを通常の手段が何らかのエラーにシェーダープログラムファイルそのものです。私の経験でのようなものであるという予想外の文字の最初か最後のファイルです。みコピー&ペーストのテキストからURLをメモ帳にはmit kerberosとしての保存ファイルです。