1

私は現在、ARB_occlusion_query 拡張機能を利用しているプロジェクトに取り組んでいます。拡張機能を適切に登録し、クエリを生成できます。次にクエリを開始し、レンダリング後に EndQuery 関数を呼び出しますが、これにより「無効な列挙型」のエラーが発生するようです。ここでスペックを確認しました: http://www.opengl.org/registry/specs/ARB/occlusion_query.txt

次のように EndQueries を呼び出しています。

glEndQuery( GL_SAMPLES_PASSED_ARB );

そして、これはすべて有効に見えますが、「無効な列挙型」というエラーコード、エラーコード1280が表示され続けます.

エラーが他の場所から発生していないことを確認するために、すべての OpenGL 呼び出しにエラー チェックを追加しており、このセクションに分離しました。次のようにクエリを生成します。

glGenQueries( size, (GLuint*)m_QueryID);

サイズは (今のところ) ハードコーディングされた値 10 で、m_QueryID はサイズが 10 の unsigned int 配列です。

問題が発生しているように見える唯一の場所は、glEndQuery 呼び出しです。代わりに「無効な列挙型」が返されます。結果の取得、クエリの開始、最終的な削除など、他のすべての呼び出しはすべて問題ありません。

私のループは次のとおりです。

glBeginQuery( GL_SAMPLES_PASSED_ARB, m_QueryID[0] ); 
*render some models here*
glEndQuery( GL_SAMPLES_PASSED_ARB );

その後、結果が得られますが、glEndQuery 呼び出しでエラーが発生したため、現時点では何もしていません。

そして、speq のエラー コードによると、次のように表示されます。

target が GL_SAMPLES_PASSED でない場合、GL_INVALID_ENUM が生成されます。

つまり、そこに GL_SAMPLES_PASSED を渡していないということです。私はARBなしで試してみましたが、もちろん変更はありません.同じことが無効な列挙子について不平を言っています.

4

0 に答える 0