5

セグメンテーション違反が発生しましたが、その理由がわかりません。私が一緒に働いている人は、OSX マシンで正しくコンパイルして実行します。gdb backtrace は、コードのこのセクション、具体的には glGenFramebuffers から来ていることを示しています。

    // Render the warped texture mapped triangles to framebuffer
GLuint myFBO;
GLuint myTexture;

glEnable(GL_TEXTURE_2D);
glGenTextures(1, &myTexture);
glBindTexture(GL_TEXTURE_2D, myTexture);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, size.width, size.height, 0, GL_RGB, GL_UNSIGNED_BYTE, 0);
glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);

glGenFramebuffers(1, &myFBO);
glBindFramebuffer(GL_FRAMEBUFFER_EXT, myFBO);

OSが提供するNvidiaの最新の専用ドライバーを使用して、Nvidiaカードで12.04 Ubuntuを実行しています。私は OpenGL にあまり詳しくありません。このコードの多くは私のパートナーのものであり、彼も困惑しているようです。さらに情報が必要な場合は、喜んで提供いたします。

4

1 に答える 1

3

答えは実際には非常に単純であることが判明しました。OSX コーダーは glew 呼び出しを使い始める前に glewInit() を呼び出す必要はありません - Linux と Windows ユーザーはそうします。また、私が見つけたもう 1 つの興味深い情報: glxinfo を使用して直接レンダリングを実行できるかどうかを確認してください。OpenGL プログラムを実行するときに、すべての違いを生むことができます。

于 2012-06-07T17:19:59.430 に答える