1

私はopenGLを使用して小惑星のクローンを作成しようとしていて、セグメンテーションエラーで完全に立ち往生しています。修正方法がわかりません。これは、関数glGenBuffersARB()の使用時に発生するようです。頂点バッファを使用して行をコメントアウトすると、プログラムはコンパイルされて正常に実行されます(ただし、明らかに何もレンダリングされません)。eclipseでgdbデバッガーを使用してminGWコンパイラーを使用しており、1.5より前のバージョンのOpenGLをサポートできるように拡張機能を使用しようとしています。

glGenBuffers(1, &_VertexBufferObject);

glBindBufferARB( GL_ARRAY_BUFFER_ARB, _VertexBufferObject ); // Bind The Buffer

glBufferDataARB( GL_ARRAY_BUFFER_ARB, U8VertexCount*3*sizeof(GLfloat), quad,GL_STATIC_DRAW_ARB );

GLuintは、次のようなヘッダーでプライベートとして宣言されます。

GLuint _VertexArrayObject;

GLuint _VertexBufferObject;

int U8VertexStride;

int U8VertexCount;

gdbトレースはここにあります:gdbトレース

4

1 に答える 1

0

私はその問題の解決策を見つけました。オブジェクトの宣言と使用は、私が意図したとおりに機能していなかったように見えます。私はオブジェクトを次のように宣言していました:CObj Obj; そして次のようにdrawを呼び出します:Obj.Draw(); ポインタとして宣言するように切り替えたとき:CObj * Obj; 次のように初期化します。Obj=newCObj(); 次に使用します:Obj-> Draw(); 思った通りに動き始めました。なぜそうなるのかわからないので、誰かが私のためにこれを片付けることができれば幸いです。

于 2012-10-22T18:06:25.237 に答える