2

GeForce9800GTXでOpenGL3.3を使用しています。3.3のリファレンスページには、glBindFramebufferを使用した無効な操作は、glGenFramebuffersから返されていないフレームバッファーIDを示していると記載されています。それでも、glGenFramebuffersによって返されたIDと後でglBindFramebufferに送信するIDを出力しましたが、これらは同じです。

ただし、glBindFramebufferのターゲットパラメータをGL_DRAW_FRAMEBUFFERからGL_FRAMEBUFFERに変更すると、GLエラーはなくなります。ドキュメントには、GL_DRAW_FRAMEBUFFERを使用できるはずだと書かれています。GL_DRAW_FRAMEBUFFERにバインドできない場合はありますか?GL_DRAW_FRAMEBUFFERの代わりにGL_FRAMEBUFFERを使用することによる害はありますか?これはより大きな問題の症状ですか?

4

1 に答える 1

2

動作しないglBindFramebuffer(GL_FRAMEBUFFER)ときに動作し、これらの関数と列挙型の EXT バージョンについて話しているわけではない場合("EXT" 接尾辞がないことに注意してください)、何か間違ったことをした可能性があります。GL_INVALID_OPERATION は、異なる状態に依存するパラメーターの複数の組み合わせが競合している場合に発生するエラーです。列挙型が欠落している場合は、GL_INVALID_ENUM を取得する必要があります。glBindFramebuffer(GL_DRAW_FRAMEBUFFER)

もちろん、ドライバーのバグである可能性もあります。しかし、コードがどのように見えるかを知らずに知る方法はありません。

于 2011-10-12T18:23:45.120 に答える