0

こんにちは、コンパイル時とリンク時のエラーをチェックするために C で簡単なシェーダー エラー チェッカーを書いています。関数を機能させるのに大きな問題がありglShaderSource()ます。最初に を使用してコード用のスペースを作成し、malloc(codelength * sizeof(char))次にこの行を使用して、作成されたシェーダー オブジェクトにソースをアタッチしますglShaderSource(shader, 1, (const char **) &code, NULL);。問題はこの行にあると思います。NULLコードの長さを変更しようとしましたが、役に立ちませんでした。シェーダーに関する情報を取得しようとするglGetShaderiv(shader, GL_INFO_LOG_LENGTH, &compileloglength);と、0が返され、0 が返さglGetShaderiv(shaders[0], GL_COMPILE_STATUS, &compileloglength);れます。これらのような小さなプロジェクトを行うのが好きなので、関連するコードがない限り、既に存在するシェーダー エラー チェッカーを教えてください。

4

2 に答える 2

2

確認のために: 有効な OpenGL コンテキストが作成されていますか? 作業に使用する関数には、GLSL 対応の OpenGL コンテキストが必要です。

最初に OpenGL コンテキストを作成せずに静的 GLSL チェックを行いたい場合は、Mesa プロジェクトのスタンドアロン GLSL コンパイラを使用できます。

于 2013-10-05T08:33:42.027 に答える