2009-05-18 13 views
0

すでにOpenGLを使っている別のプログラムでプログラミングしていることを考えれば、理論的にはどういう使い方があるのか​​わかりません。既にOpenGLを使用しているプログラム内のOpenGLプログラミング?

私はコンテキストを設定してもよいが、スタックからプッシュ/ポップして、すべてが期待どおりに動作するはずか、誤って物事をねじ込むのを防ぐために私の(呼び出し元)プログラムがOpenGLをどのように使用しているかを知っていなければならない?

また、既に初期化されている場合、OpenGLを「初期化」する方法はありますか?

ありがとうございました!

答えて

0

最初の質問に答えるには、プログラムの関数を呼び出す前にglPushAttrib(GL_ALL_ATTRIB_BITS)を呼び出してから、後でglPopAtrib()を呼び出すことができます。これを頻繁に行うと(ループ内のすべてのフレームなど)、処理が遅くなることに注意してください。

OpenGLの初期化の意味がわかりません。レンダリングコンテキストを設定することを意味しますか?ビューポートと投影を設定しますか?特定の機能を無効または有効にしますか?特定の状態が有効かどうか(glGet関数を使用して)常に確認できますが、残りはプログラムと他のプログラムがどのように動作するかによって異なります。

0

私は理論的には、後のコンテキストを復元する限り、OpenGLはどんなコンテキストでも動作できるはずだと言われています。

0

OpenGLで正確に何をしたいですか?あなたは同じ窓を描こうとしていますか?あなたは自分のウィンドウに描画したいですか?あなた自身のウィンドウに描画したいだけで、既存のアプリケーションがOpenGLを使用しているという事実は単なる偶然であり、まったく新しいコンテキストを作成して既存のものを無視することで逃れることができます。唯一の問題は、自分がやっていることを終えるたびに既存のコンテキストを最新にする必要があり、何かをしたいときはいつでもコンテキストを最新にする必要があるということです。既存のコードでは、独自のコンテキストを現在のものにする必要はありません。気をつけなければ、ランダムにコンテキストを描画することがあります。

既存のウィンドウに描画したい場合は、既存のものが何をしているのかについてほとんど何かが必要です。

関連する問題