2009-07-22 13 views
1

質問には、私が今持っている最良の例は、関数glSelectBufferです。私は私のinit関数で一度だけ呼び出すことができますか、私はglRenderMode(GL_SELECT)を行う前に毎回呼び出さなければならないかどうかを知りたいです。しかし、ちょうど一般的に、私はプログラムの初めに一度関数を呼び出すことができるかどうか、またはそれをすべてのフレームと呼ぶ必要があるのか​​どうかは疑問に思っています。フレームごとに呼び出す必要があり、一度しか呼び出せないOpenGL関数をどのように知っていますか?

私はOpenGLが州のエンジンだと知っていますが、私はいくつかのものが州に保管され、他のものは保管されていないようです。そして、私が知っていることは、プログラムの後半で何かを修正するときに、OpenGLがステートエンジンであるために、毎回ループの最初に最初の値に戻す必要があることです。それは私が探している答えではありません。

私が非常に混乱していて、このような問題がない場合は、glSelectBufferを一度呼び出すか、毎回呼び出す必要があるかどうかのサブ質問に答えてください。

答えて

2

毎回、直接描画呼び出しのみを呼び出す必要があります。 状態を変更する呼び出しは、フレームレンダリングプロセスのさまざまな時点で異なる状態に設定する必要があるため、すべてのフレームを呼び出す必要があることがあります。

これもglRenderModeの場合です.GL_SELECTと他のモードを連続的に切り替える必要があります。

編集:申し訳ありませんが、これはglSelectBufferの場合も同様です - GL_SELECTモードを終了しているマニュアルページに従って、自動的にバッファポインタがリセットされます。

関連する問題