glutSwapBuffer の機能がよくわかりませんでした。私のコードでは、glutSwapBuffer を使用しないと、背景色がウィンドウに表示されず、透明のままになり、背景にあるものはすべてキャプチャされます。背景色は実際には glClearColor によって割り当てられていると思いますが、なぜ glutSwapBuffer を使用せずに背景色を取得できなかったのですか。
質問する
268 次
2 に答える
2
この質問は何度も出てきます。あなたが説明しているのは、合成ウィンドウマネージャーでフロントバッファーに排他的に描画すると実際に何が起こるかだと思います。
バッファーをスワップしないと、ウィンドウが正しく描画されないため、ウィンドウが透明に表示されます。ウィンドウ マネージャーの合成にはダブル バッファリングが必要であり、多くのハイブリッド統合/ディスクリート GPU 実装 (nVIDIA Optimus など) にも必要なようです。要するに、最近のデスクトップ プラットフォームでシングル バッファ レンダリングを使用する本当の理由はありません。
確かに、あなたの状況はこれに似ていますか? このスクリーンショットは、単一バッファリングのみを使用するウィンドウが合成ウィンドウ マネージャーで移動されるとどうなるかを示しています。
もしそうなら、より完全な説明はここにあります。
于 2013-09-30T14:04:45.457 に答える
1
通常、opengl はダブル バッファリングを使用するように構成されています。
最初に1つのバッファに描画します...次に、2番目のバッファと交換して画面に表示します。glutSwapBuffer を呼び出さないと何も表示されず、正しい動作です。
于 2013-09-30T13:19:14.330 に答える